hdoj 1229 还是A+B

来源:互联网 发布:js开源特效 编辑:程序博客网 时间:2024/05/16 01:40


http://acm.hdu.edu.cn/showproblem.php?pid=1229

还是A+B

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 15841    Accepted Submission(s): 7710


Problem Description
读入两个小于10000的正整数A和B,计算A+B。需要注意的是:如果A和B的末尾K(不超过8)位数字相同,请直接输出-1。
 


Input
测试输入包含若干测试用例,每个测试用例占一行,格式为"A B K",相邻两数字有一个空格间隔。当A和B同时为0时输入结束,相应的结果不要输出。
 


Output
对每个测试用例输出1行,即A+B的值或者是-1。
 


Sample Input
1 2 111 21 1108 8 236 64 30 0 1
 


Sample Output
3-1-1100
用sprintf(s,"%d",a)把数字a转换成字符串s这个函数,很简单
#include<stdio.h>#include<string.h>int main(){int A,B,K,i,j,k,n,m,j_;char a[10],b[10];while(scanf("%d %d %d",&A,&B,&K)&&(A!=0||B!=0)){ sprintf(a,"%d",A); n=strlen(a); sprintf(b,"%d",B); m=strlen(b); for(k=1,j_=1;k<=K;k++) { if(n<k) i=0; else if(n>=k) i=a[n-k]-'0'; if(m<k) j=0; else if(m>=k) j=b[m-k]-'0';  if(i!=j) { j_=0; break; } } if(j_==1) printf("-1\n"); else if(j_==0) printf("%d\n",A+B);}return 0;}

0 0
原创粉丝点击