QDU 18 反转数字
2016-08-31 22:54
176 查看
反转数字
发布时间: 2015年10月3日 21:07 时间限制: 100ms 内存限制: 256M
描述
输入一个 c 语言 4字节 int 范围内的数字,输出它反转后的数字。比如12345反转后是54321,-12345反转后是-54321。如果反转后的数字不在 int 范围内就输出0;
输入
每行一个 int 范围内的数字,以 EOF 结尾。
输出
输出反转后的数字,每行一个
样例输入1
12345
-12345
样例输出1
54321
-54321
思路:
将数字以字符串输入,然后字符串逐个取位转换为数字再乘以倍数
注意:
pow函数会有误差,所以要手写!
(看了凯神博客知道的,厉害的人真的都是努力的,最近真的太懒了
发布时间: 2015年10月3日 21:07 时间限制: 100ms 内存限制: 256M
描述
输入一个 c 语言 4字节 int 范围内的数字,输出它反转后的数字。比如12345反转后是54321,-12345反转后是-54321。如果反转后的数字不在 int 范围内就输出0;
输入
每行一个 int 范围内的数字,以 EOF 结尾。
输出
输出反转后的数字,每行一个
样例输入1
12345
-12345
样例输出1
54321
-54321
思路:
将数字以字符串输入,然后字符串逐个取位转换为数字再乘以倍数
注意:
pow函数会有误差,所以要手写!
(看了凯神博客知道的,厉害的人真的都是努力的,最近真的太懒了
#include<cstdio> #include<iostream> #include<cstring> using namespace std; long long max_; long long pow(int n) { long long res=1; for(int i=0;i<n;i++) { res*=10; } return res; } int main() { max_=1; for(int i=0;i<31;i++) { max_*=2; } max_=max_-1; long long min_=-1*max_; char str[20]; while(scanf("%s",str)!=EOF) { int flag=0; if(str[0]=='-') { flag=1; } int len=strlen(str); long long sum=0; if(flag==0) { for(int i=len-1;i>=0;i--) { long long n; n=str[i]-'0'; sum+=n*(pow(i)); } } else { for(int i=len-1;i>0;i--) { long long n=str[i]-'0'; sum+=n*(pow(i-1)); } } if(sum>max_||sum<-1*max_) { printf("0\n"); } else if(flag==0) printf("%lld\n",sum); else if(flag==1) printf("-%lld\n",sum); } return 0; }
相关文章推荐
- QDU 18 - 反转数字
- QDU 反转数字
- 数字图像处理-空间域图像增强(一)(图像反转,对数变换,幂次变换、分段线性变换)
- java 输入一个数字,反转(倒置)输出这个数字的值
- 数字反转
- 利用StringBuffer的反转,打印10000以内的回文数字
- NOIP2011复赛普级组&nbsp;数字反转
- 网易笔试题之数字反转(数学真的奇妙)
- 【程序18】 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时 共有5个数相加),几个数相加有键盘控制
- 反转数字、字符串
- |1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20所有这些字符串,把它的数字一个个剥离??
- luogu P1307 数字反转 x
- 信息学奥林匹克竞赛-数字反转
- 4029:数字反转
- 数字反转(0)<P2011_1>
- <NOIP> 9 . P1307 数字反转
- 数字反转
- *寒假水18——An easy problem(字母转换成数字)
- luogu1307 数字反转(NOIP2011普及组第1题)
- 剑指offer面试题17,18:反转链表+合并有序链表