文章目录

  • [NOIP2011 普及组] 数字反转
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 样例 #2
      • 样例输入 #2
      • 样例输出 #2
    • 提示
  • 代码&注释
    • 代码1 TLE 超时间了!!!
    • 代码2 AC!!!
    • 代码3 再精简AC again!
    • 代码3 用string来处理!!!
  • 方法好多呀!

[NOIP2011 普及组] 数字反转

题目描述

给定一个整数 NNN,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例 2)。

输入格式

一个整数 NNN。

输出格式

一个整数,表示反转后的新数。

样例 #1

样例输入 #1

123

样例输出 #1

321

样例 #2

样例输入 #2

-380

样例输出 #2

-83

提示

【数据范围】
−1,000,000,000≤N≤1,000,000,000。
noip2011 普及组第一题

代码&注释

代码1 TLE 超时间了!!!

#include <bits/stdc++.h>
using namespace std;
long long digiArr[11] = {}, n, ans = 0, divisor = 1;
int main()
{memset(digiArr, 0, sizeof(n));  // 归 0cin >> n;                for (int i = 1; i <= 10; i++) {digiArr[i] = n / divisor % 10, divisor *= 10; // 求出每一位数字后存入数组(负数得到的每一项为负数,然后依次存到数组中)//cout << "digiArr[" << i << "]: " << digiArr[i] << endl;}divisor = 1e9;                 //初始化, 9 个 0for (int i = 1; i <= 10; i++) {ans += digiArr[i] * divisor, divisor /= 10; //存入 ans//cout << i << " ans: " << ans << endl;}while (ans % 10 == 0)ans /= 10; //处理后的数最后有0就除掉cout << ans;   return 0;
}

代码2 AC!!!

#include <bits/stdc++.h>
using namespace std;int main()
{int num, res = 0; // res 初始 为 0cin >> num;while (num) {// 如果是最后一位是 0, res 的结果就一直是 0 (res = 0 * 10 + 0, num /= 10)res = res * 10 + num % 10;num /= 10; // 如果 num 不是0,就一直让 res 整体进一位(乘以 10),腾出个位// cout << res << "\t\t\t" << num << endl;}cout << res;return 0;
}

代码3 再精简AC again!

#include <iostream>
using namespace std;int main()
{int num = 0, ans = 0; for (cin >> num; num != 0; num /= 10) // cin 放在 for 中, // num 除去最后一位的操作,以及是否除到只剩最后一个数字的判断,都放在 for 中ans = ans * 10 + num % 10; cout << ans;return 0;
}

代码3 用string来处理!!!

#include <iostream>
#include <string>
using namespace std;int main()
{string str1, str2; // str2用来保存结果cin >> str1;if (str1[0] == '-') // 如果是负数{cout << "-"; // 输出负号for (int i = str1.length() - 1; i >= 1; i--)str2 = str2 + str1[i]; // if (str2[0] == '0')//     str2.erase(0, str2.find_first_not_of('0'));// string::find_first_not_of(char ch); 这个方法的用处显而易见!!!// 也可以使用 stoi (string 转 int,自动省略开头的 0)cout << stoi(str2);                              }else {for (int i = str1.length() - 1; i >= 0; i--)str2 = str2 + str1[i]; if (str2[0] == '0')str2.erase(0, str2.find_first_not_of('0')); cout << str2;                                   }return 0;
}

方法好多呀!

继续往前刷!!!打好基础!!!多多实践!!!去看看力扣!!!

P1307 [NOIP2011 普及组] 数字反转 多种方法 详细注释相关推荐

  1. 信息学奥赛一本通 1089:数字反转 | 1953:【11NOIP普及组】数字反转 | OpenJudge NOI 1.5 29 | 洛谷 P1307 [NOIP2011 普及组] 数字反转

    [题目链接] ybt 1089:数字反转 ybt 1953:[11NOIP普及组]数字反转 OpenJudge NOI 1.5 29:数字反转 洛谷 P1307 [NOIP2011 普及组] 数字反转 ...

  2. P1307 [NOIP2011 普及组] 数字反转(python3实现)

    https://www.luogu.com.cn/problem/P1307 """P1307 [NOIP2011 普及组] 数字反转 https://www.luogu ...

  3. 洛谷——P1307 [NOIP2011 普及组] 数字反转

    P1307 [NOIP2011 普及组] 数字反转 题目描述 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应 ...

  4. P1307 [NOIP2011 普及组] 数字反转

    题目描述 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零. 输入格式 一个整数 N 输出格式 一个整数, ...

  5. [NOIP2011 普及组] 数字反转

    题目链接 题目描述 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2). 输入格式 一个整数 ...

  6. NOIP 2011 普及组 数字反转

    直接while循环,取余即可 #include <iostream> using namespace std;int main() {int n, ans = 0;cin >> ...

  7. 信息学奥赛一本通 1956:【11NOIP普及组】表达式的值 | 洛谷 P1310 [NOIP2011 普及组] 表达式的值

    [题目链接] ybt 1956:[11NOIP普及组]表达式的值 洛谷 P1310 [NOIP2011 普及组] 表达式的值 [题目考点] 表达式树 由带括号的中缀表达式构建表达式树 [解题思路] 思 ...

  8. 信息学奥赛一本通 1400:统计单词数 | 1954:【11NOIP普及组】统计单词数 | OpenJudge NOI 1.12 05 | 洛谷 P1308 [NOIP2011 普及组] 统计单词数

    [题目链接] ybt 1400:统计单词数 ybt 1954:[11NOIP普及组]统计单词数 OpenJudge NOI 1.12 05:统计单词数 洛谷 P1308 [NOIP2011 普及组] ...

  9. P1309 [NOIP2011 普及组] 瑞士轮

    题目背景 在双人对决的竞技性比赛,如乒乓球.羽毛球.国际象棋中,最常见的赛制是淘汰赛和循环赛.前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高.后者的特点是较为公平,偶然性较低,但比赛过程往往十分 ...

最新文章

  1. Java实用教程笔记 子类与继承2
  2. redis 系列26 Cluster高可用 (1)
  3. 信息学奥赛一本通(2050:【例5.20】字串包含)
  4. 反编译Android将状态栏高度,反编译SystemUI.apk 实现状态栏时间居中
  5. 大数据分析有哪些分析方式
  6. 【学术分享】写论文必须养成的十大良好写作习惯
  7. 免费好用的证件扫描仪-扫描全能王
  8. 智渔课堂官方免费教程二十六:Java基础教程之数组
  9. 2022年6月 青少年软件编程(Python) 等级考试试卷(二级)
  10. oracle subsatr 分隔符,Oracle函数列表速查-数据库专栏,ORACLE
  11. python数据分析之足球运动员分析
  12. 三天入门MySQL---DAY 1---库和表的创建、删除、更新
  13. LED Designing
  14. macOS--苹果本安装Win(看完可省200块)
  15. 倍福--CAB文件的配置
  16. 统俗讲义之——何为统计显著性(Statistical Significance)
  17. 专科出身,2年进入苏宁,5年跳槽阿里,论我是怎么快速晋升的?
  18. (linux-x86-ARM)麒麟V10安装DBeaver21.3通用的数据库管理工具和 SQL 客户端
  19. 如何在您的香港主机帐户上注册多个域名
  20. 少儿编程课程和乐高机器人有什么不同

热门文章

  1. 【Graph Embedding】DeepWalk:算法原理,实现和应用
  2. python可视化DEM遥感影像(tif格式)||xarray使用
  3. 12、安全通信与网络攻击
  4. idea 忽略报错配置
  5. 再见邓肯!再见石佛!
  6. TCP与UDP的区别(详解)
  7. Error (10028): Can't resolve multiple constant drivers for net cnt[19] at key.v(95)
  8. 筑智建—中职土建类专业BIM装配式建筑育人模式师资培训圆满完成
  9. 智能硬件产品工装开发全流程
  10. 考研英语,这些名师你必须知道!