hdoj-3787-A+B(小坑)
2015-07-23 17:48
375 查看
A+B
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3636 Accepted Submission(s): 2074
[align=left]Problem Description[/align]
给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。
现在请计算A+B的结果,并以正常形式输出。
[align=left]Input[/align]
输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 < A,B < 10^9)。
[align=left]Output[/align]
请计算A+B的结果,并以正常形式输出,每组数据占一行。
[align=left]Sample Input[/align]
-234,567,890 123,456,789 1,234 2,345,678
[align=left]Sample Output[/align]
-111111101 2346912
解题思路:
最开始的思路是将字符数组转化为整型数字,但是突然看到-10^9 < A,B < 10^9,说明A+B的和也在int范围,直接将字符串转化为整数,然后相加就好了嘛。
然后考虑到最前面有符号,我第一次是倒着来转换的,结果忘记了考虑","开头的情况,(即 ,123 ,123),然后我又改变思路,正着来转换,然后就A了。
注意: ,123 ,123
代码
//倒着转换 #include<stdio.h> #include<string.h> char ca[20],cb[20]; int main() { int lenca,lencb; int i,j,k; int now; int numa,numb; int ans; while(scanf("%s %s",ca,cb)!=EOF) { lenca=strlen(ca); lencb=strlen(cb); numa=0; for(i=lenca-1,j=0;i>=1;i--) if(ca[i]!=',') { now=ca[i]-'0'; k=j; while(k--) { now*=10; } numa+=now; j++; } if(ca[0]=='-') numa*=-1; //else else if(ca[0]!='-'&&ca[0]!=',') //最开始没有考虑 ,123 ,123这种情况 { now=ca[0]-'0'; while(j--) { now*=10; } numa+=now; } numb=0; for(i=lencb-1,j=0;i>=1;i--) if(cb[i]!=',') { now=cb[i]-'0'; k=j; while(k--) { now*=10; } numb+=now; j++; } if(cb[0]=='-') numb*=-1; else if(cb[0]!='-'&&cb[0]!=',') { now=cb[0]-'0'; while(j--) { now*=10; } numb+=now; } printf("%d\n",numa+numb); } return 0; }
//正着转换
#include<stdio.h> #include<string.h> char ca[20],cb[20]; int judge(char s[]) { int num; int len; int i,j,k; int ok; len=strlen(s); if(s[0]=='-') { ok=1; i=1; } else { ok=0; i=0; } num=0; for(;i<len;i++) if(s[i]!=',') { num=num*10+s[i]-'0'; } if(ok==1) return num*-1; else return num; } int main() { int numa,numb; while(scanf("%s %s",&ca,&cb)!=EOF) { numa=judge(ca); numb=judge(cb); printf("%d\n",numa+numb); } return 0; }
相关文章推荐
- Fragment(三) Android Fragment应用实战,使用碎片向ActivityGroup说再见
- POJ-1064 Cable master
- Eclipse Java代码折叠插件 Code Folding
- 两种I/O多路复用模式:Reactor和Proactor
- ocp 047-40 User OE, the owner of the ORDERS table, issues the following command:
- 三种方式绑定hosts文件来访问域名
- Android动画
- apache camel jetty http
- apache camel jetty http
- JAVA比较两张图片相似度的方法
- JMX
- C语言数据类型
- 不可摸数
- 在树莓派上如何让脚本随X界面启动
- iOS高仿城觅项目(开发思路和代码)
- hdu1873 看病要排队(结构体优先队列)
- QLineEdit几个常用的实现
- iOS调整状态栏字体颜色
- php使用thrift操作hdfs
- 迭代器,类型的互相转换,NSDate,集合NSSet