P1307 [NOIP2011 普及组] 数字反转 多种方法 详细注释
文章目录
- [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 普及组] 数字反转 多种方法 详细注释相关推荐
- 信息学奥赛一本通 1089:数字反转 | 1953:【11NOIP普及组】数字反转 | OpenJudge NOI 1.5 29 | 洛谷 P1307 [NOIP2011 普及组] 数字反转
[题目链接] ybt 1089:数字反转 ybt 1953:[11NOIP普及组]数字反转 OpenJudge NOI 1.5 29:数字反转 洛谷 P1307 [NOIP2011 普及组] 数字反转 ...
- P1307 [NOIP2011 普及组] 数字反转(python3实现)
https://www.luogu.com.cn/problem/P1307 """P1307 [NOIP2011 普及组] 数字反转 https://www.luogu ...
- 洛谷——P1307 [NOIP2011 普及组] 数字反转
P1307 [NOIP2011 普及组] 数字反转 题目描述 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应 ...
- P1307 [NOIP2011 普及组] 数字反转
题目描述 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零. 输入格式 一个整数 N 输出格式 一个整数, ...
- [NOIP2011 普及组] 数字反转
题目链接 题目描述 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2). 输入格式 一个整数 ...
- NOIP 2011 普及组 数字反转
直接while循环,取余即可 #include <iostream> using namespace std;int main() {int n, ans = 0;cin >> ...
- 信息学奥赛一本通 1956:【11NOIP普及组】表达式的值 | 洛谷 P1310 [NOIP2011 普及组] 表达式的值
[题目链接] ybt 1956:[11NOIP普及组]表达式的值 洛谷 P1310 [NOIP2011 普及组] 表达式的值 [题目考点] 表达式树 由带括号的中缀表达式构建表达式树 [解题思路] 思 ...
- 信息学奥赛一本通 1400:统计单词数 | 1954:【11NOIP普及组】统计单词数 | OpenJudge NOI 1.12 05 | 洛谷 P1308 [NOIP2011 普及组] 统计单词数
[题目链接] ybt 1400:统计单词数 ybt 1954:[11NOIP普及组]统计单词数 OpenJudge NOI 1.12 05:统计单词数 洛谷 P1308 [NOIP2011 普及组] ...
- P1309 [NOIP2011 普及组] 瑞士轮
题目背景 在双人对决的竞技性比赛,如乒乓球.羽毛球.国际象棋中,最常见的赛制是淘汰赛和循环赛.前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高.后者的特点是较为公平,偶然性较低,但比赛过程往往十分 ...
最新文章
- Java实用教程笔记 子类与继承2
- redis 系列26 Cluster高可用 (1)
- 信息学奥赛一本通(2050:【例5.20】字串包含)
- 反编译Android将状态栏高度,反编译SystemUI.apk 实现状态栏时间居中
- 大数据分析有哪些分析方式
- 【学术分享】写论文必须养成的十大良好写作习惯
- 免费好用的证件扫描仪-扫描全能王
- 智渔课堂官方免费教程二十六:Java基础教程之数组
- 2022年6月 青少年软件编程(Python) 等级考试试卷(二级)
- oracle subsatr 分隔符,Oracle函数列表速查-数据库专栏,ORACLE
- python数据分析之足球运动员分析
- 三天入门MySQL---DAY 1---库和表的创建、删除、更新
- LED Designing
- macOS--苹果本安装Win(看完可省200块)
- 倍福--CAB文件的配置
- 统俗讲义之——何为统计显著性(Statistical Significance)
- 专科出身,2年进入苏宁,5年跳槽阿里,论我是怎么快速晋升的?
- (linux-x86-ARM)麒麟V10安装DBeaver21.3通用的数据库管理工具和 SQL 客户端
- 如何在您的香港主机帐户上注册多个域名
- 少儿编程课程和乐高机器人有什么不同
热门文章
- 【Graph Embedding】DeepWalk:算法原理,实现和应用
- python可视化DEM遥感影像(tif格式)||xarray使用
- 12、安全通信与网络攻击
- idea 忽略报错配置
- 再见邓肯!再见石佛!
- TCP与UDP的区别(详解)
- Error (10028): Can't resolve multiple constant drivers for net cnt[19] at key.v(95)
- 筑智建—中职土建类专业BIM装配式建筑育人模式师资培训圆满完成
- 智能硬件产品工装开发全流程
- 考研英语,这些名师你必须知道!