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 1 11 21 1 108 8 2 36 64 3 0 0 1
Sample Output
3 -1 -1 100用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; }