主题:一个笑问题
还是A+B
运行时间限制:1000MS 运行内存限制:65536KByte
总提交:14 测试通过:3
时间限制(Java):10000MS
题目描述
读入两个小于10000的正整数A和B,计算A+B。需要注意的是:如果A和B的末尾K(不超过8)位数字相同,请直接输出-1。
输入
测试输入包含若干测试用例,每个测试用例占一行,格式为"A B K",相邻两数字有一个空格间隔。当A和B同时为0时输入结束,相应的结果不要输出。
输出
对每个测试用例输出1行,即A+B的值或者是-1。
样例输入
1 2 1
11 21 1
108 8 2
36 64 3
0 0 1
样例输出
3
-1
-1
100
下面是我的程序,提交通不过啊,哪位大侠帮忙看看,哪里有问题
#include<stdio.h>
void r(int n,int *a)
{
int i=0;
while(n)
{ a[i++]=n%10;
n=n/10;}
}
int main()
{ int m,n,k,a[8]={0},b[8]={0};
int i;
while(1)
{ scanf("%d%d%d",&m,&n,&k);
if(m==0&&n==0) break;
r(m,a);r(n,b);
i=0;
while(i<k)
{if(a[i]==b[i]) i++;
else break;
}
if(i==k) printf("-1\n");
else printf("%d\n",m+n);
}
return 0;
}
运行时间限制:1000MS 运行内存限制:65536KByte
总提交:14 测试通过:3
时间限制(Java):10000MS
题目描述
读入两个小于10000的正整数A和B,计算A+B。需要注意的是:如果A和B的末尾K(不超过8)位数字相同,请直接输出-1。
输入
测试输入包含若干测试用例,每个测试用例占一行,格式为"A B K",相邻两数字有一个空格间隔。当A和B同时为0时输入结束,相应的结果不要输出。
输出
对每个测试用例输出1行,即A+B的值或者是-1。
样例输入
1 2 1
11 21 1
108 8 2
36 64 3
0 0 1
样例输出
3
-1
-1
100
下面是我的程序,提交通不过啊,哪位大侠帮忙看看,哪里有问题
#include<stdio.h>
void r(int n,int *a)
{
int i=0;
while(n)
{ a[i++]=n%10;
n=n/10;}
}
int main()
{ int m,n,k,a[8]={0},b[8]={0};
int i;
while(1)
{ scanf("%d%d%d",&m,&n,&k);
if(m==0&&n==0) break;
r(m,a);r(n,b);
i=0;
while(i<k)
{if(a[i]==b[i]) i++;
else break;
}
if(i==k) printf("-1\n");
else printf("%d\n",m+n);
}
return 0;
}