给两个不超过十位的正整数,问它们相加的过程中,一共有几次进位。模拟加法运算……
#include <iostream>
#include <map>
#include <string>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
int i,j,l1,l2,sum;
string a,b;
while(cin>>a>>b)
{
if(a=="0"&&b=="0") break;
int c[15]={0};
sum=0;
if(a.length()<b.length()) swap(a,b); //前个数长度比较大,若小的交换
l1=a.length();
l2=b.length();
for(i=l1-1,j=l1; i>=0; i--,j--)
{
if(i-l1+l2>=0)
c[j]+=(a[i]-48)+(b[i-l1+l2]-48);
else c[j]+=(a[i]-48);
if(c[j]>9)
{
sum++;
c[j-1]+=1;
c[j]-=10;
}
}
if(sum==0) cout<<"No carry operation."<<endl;
else if(sum==1) cout<<"1 carry operation."<<endl;
else cout<<sum<<" carry operations."<<endl;
}
return 0;
}