小学生算术
时间限制:
3000 ms | 内存限制:
65535 KB
难度:
1
描述
很多小学生在学习加法时,发现“进位”特别容易出错。你的任务是计算两个三位数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据,直到读到两个0(这是输入结束标记)。
输入
输入两个正整数m,n.(m,n,都是三位数)
输出
输出m,n,相加时需要进位多少次。
样例输入
123 456
555 555
123 594
0 0
样例输出
0
3
1
题目链接:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=74
代码:
#include <stdio.h>
int main()
{
int a,b,t,x1,x2,y1,y2,z1,z2;
while(scanf("%d%d",&a,&b),a!=0&&b!=0)
{
t=0;
x1=a%10;
y1=a/10%10;
z1=a/100;
x2=b%10;
y2=b/10%10;
z2=b/100;
if(x1+x2>=10)//确定个位是否进位
{
t++;
if(y1+y2+1>=10)//个位进位十位相加需+1
{
t++;
if(z1+z2+1>=10)//十位进位百位+1
{
t++;
}
}
else//十位不进位
{
if(z1+z2>=10)
{
t++;
}
}
}
else//个位不进位
{
if(y1+y2>=10)//十位进位
{
t++;
if(z1+z2+1>=10)
{
t++;
}
}
else//十位不进位
{
if(z1+z2>=10)
{
t++;
}
}
}
printf("%d\n",t);
}
return 0;
}