小学生算术
2018-02-09 08:39
197 查看
小学生算术
很多小学生在学习加法时,发现“进位”特别容易出错。你的任务是计算两个三位数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据,直到读到两个0(这是输入结束标记)。输入输入两个正整数m,n.(m,n,都是三位数)输出输出m,n,相加时需要进位多少次。
样例输入
123 456
555 555
123 594
0 0
样例输出
0
3
1
#include<stdio.h> int main() { int m,n,ci; while(scanf("%d %d",&m,&n)!=EOF&&m!=0||n!=0) { ci=0; if((m%10+n%10)>=10)//个位相加超过10; ci++; if((m/10%10+n/10%10)>=10||((m%10+n%10)>=10&&(m/10%10+n/10%10+1)>=10))//十位相加超过10或者个位相加超过10而十位相加刚好等于9; ci++; if((m/100+n/100)>=10||((m/10%10+n/10%10)>=10&&(m/100+n/100+1)>=10)||((m%10+n%10)>=10&&(m/10%10+n/10%10+1)>=10&&(m/100+n/100+1)>=10))//百位相加超过10;或者十位相加超过10,百位相加刚好等于9;或者个位相加超过10,而十位和百位相加都是9; ci++; printf("%d\n",ci); } return 0; }