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
题意:略!
分析:a和b对10^k求模,然后判断这两个数是否相等,如果相等就输出-1,否则输出a+b的值。
AC源代码(C语言):
1 #include<stdio.h> 2 #include<math.h> 3 int main() 4 { 5 int a,b,k,i,y; 6 long int m; 7 while(scanf("%d %d %d",&a,&b,&k)==3) 8 { 9 if(!a&&!b) break; 10 y=a+b; //先将a+b的值算出来,因为后面for循环里面a,b的值要发生改变 11 m=pow(10,k); 12 a%=m;b%=m; 13 if(a==b) y=-1; 14 printf("%d\n",y); 15 } 16 return 0; 17 }
2013-03-14