小学生算术
时间: 1ms 内存:128M
描述:
很多小学生在学习加法时,发现“进位”特别容易出错。你的任务是计算两个三位数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据,直到读到两个0(这是输入结束标记)。
输入:
输入两个正整数m,n.(m,n,都是三位数)
输出:
输出m,n,相加时需要进位多少次。
示例输入:
123 456
555 555
123 594
0 0
示例输出:
0
3
1
提示:
参考答案(内存最优[1092]):
#include<stdio.h>
int main()
{
int a,b,a1,a2,a3,b1,b2,b3,k=0;
while(scanf("%d %d",&a,&b),a||b)
{
a1=a%10;
a2=a/10%10;
a3=a/100;
b1=b%10;
b2=b/10%10;
b3=b/100;
if(a1+b1>=10)
{
k++;
a2++;
}
if(a2+b2>=10)
{
k++;
a3++;
}
if(a3+b3>=10)
k++;
printf("%d\n",k);
k=0;
}
return 0;
}
参考答案(时间最优[0]):
#include<stdio.h>
int main()
{
int a,b,a1,a2,a3,b1,b2,b3,k=0;
while(scanf("%d %d",&a,&b),a||b)
{
a1=a%10;
a2=a/10%10;
a3=a/100;
b1=b%10;
b2=b/10%10;
b3=b/100;
if(a1+b1>=10)
{
k++;
a2++;
}
if(a2+b2>=10)
{
k++;
a3++;
}
if(a3+b3>=10)
k++;
printf("%d\n",k);
k=0;
}
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。