1510 - 还是A+B
读入两个小于10000的正整数A和B,计算A+B。需要注意的是:如果A和B的末尾K(不超过8)位数字相同,请直接输出-1。
Input
测试输入包含若干测试用例,每个测试用例占一行,格式为"A B K",相邻两数字有一个空格间隔。当A和B同时为0时输入结束,相应的结果不要输出。
Output
对每个测试用例输出1行,即A+B的值或者是-1。
Examples
Input
2 3 1 12 22 1 11 111 2 0 0 2
Output
5 -1 -1
Solution C
int main (void) { int a, b, k; int l; //除数 while (1) { /*处理一行*/ a = b = k = 0; l = 1; scanf("%d%d%d", &a, &b, &k); for (;k > 0; --k) { l *= 10; } if (a == 0 && b == 0)break; if ( a % l == b % l ) printf("-1\n"); else printf("%d\n", a+b); } return 0; }
Solution C++
#include<stdio.h> #include<math.h> int main() { int a,b,k,i,m,t; while(scanf("%d%d%d",&a,&b,&k)!=EOF,a||b) { if(a==b) printf("-1\n"); else { m=fabs(a-b); t=0; i=10; while(1) { if(m%i==0) t++; else break; i*=10; } printf(t>=k?"-1\n":"%d\n",a+b); } } return 0; }