HDU 1229 还是A+B

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

 
posted @ 2013-03-14 19:42  刘一卜  阅读(381)  评论(0编辑  收藏  举报