</pre><pre>
小学生算术
描述
很多小学生在学习加法时,发现“进位”特别容易出错。你的任务是计算两个三位数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据,直到输入两个0结束。
输入
输入两个正整数m和n.(m,n都是三位数)
输出
输出m和n相加时需要进位多少次。
样例输入
123 456
555 555
123 594
0 0
样例输出
0
3
1方法一:
#include<stdio.h>
int main()
{int a,b,i;scanf("%d%d",&a,&b);for(i=0;a>0;){int h,j;h=a%10;j=b%10;if(h+j>9) i++;a=a/10;b=b/10;}printf("%d",i);return 0;
}
方法二:
<span style="font-size:18px;">#include<stdio.h>
int main()
{int n,m;while(scanf("%d%d",&n,&m)!=EOF){int a1,a2,a3,b1,b2,b3;if(n==0&&m==0)return 0;else{int i=0,k;a1=n/100;a2=n/10%10;a3=n%10;b1=m/100;b2=m/10%10;b3=m%10;if(a3+b3>=10 ){k=1;i++;}if(a2+b2+k>=10 ){ k=1;i++;}if(a1+b1+k>=10){i++;}printf("%d\n",i);}}return 0;
}
这个是拿着题第一的想法,但是要注意,每一位位数的两个数满足于10,也不排除有456,344的情况,个位满足于10,十位有了个位的1之后也满足,也算是一位进位。