222、加法进位(add.cpp/c/pasadd.cpp/c/pasadd.cpp/c/pas)
TomTomTom是个小学一年级的学生,目前正在学加法,他发现加法在“进位”的时候特别容易出错。他想请正在学程序设计的你,帮忙计算两个正整数A和B在相加时有多少次进位。你编制的程序应当可以连续处理多组数据,直到读到两个000(这是输入结束标记)为止。
【输入格式】
输入文件名为 add.inadd .inadd.in。
输入多组数据(不超过202020组),每组数据占一行,每行是两个正整数AAA和BBB,中间用一个空格隔开,最后一行是000 000,表示输入结束(最后一行不需要计算)。
【输出格式】
输出文件名为add.outadd. outadd.out。
按照输入数据的顺序,对应每组输入数据,你需要输出一行,每行中只有一个整数,表示A,BA,BA,B相加时有多少次进位。
【输入样例】add.inadd. inadd.in
123 4567
555 555
123 594
0 0
【输出样例】add.outadd.outadd.out
1
3
1
【数据规模与约定】
对于50%50\%50% 的数据:0<A,B≤100000<A,B≤100000<A,B≤10000 。
对于100%100\%100% 的数据:0<A,B≤10000000000<A,B≤10000000000<A,B≤1000000000 。
题解
#include<bits/stdc++.h>
using namespace std;
int x,y;//两个正整数
int main()
{
freopen("add.in","r",stdin);
freopen("add.out","w",stdout);
while(scanf("%d %d",&x,&y)&&x!=0&&y!=0)
{
int ans=0,h=0;
for(int i=1;i<=9;i++)
{
if((h+x%10+y%10)>9) //判断进位
{
h=1; //进位数
ans++;
}
else h=0;
x/=10,y/=10;
}
printf("%d\n",ans);
}
return 0;
}