POJ 2562每日一水

来源:互联网 发布:eclipse查看php版本 编辑:程序博客网 时间:2024/06/07 10:29
给两个不超过十位的正整数,问它们相加的过程中,一共有几次进位。模拟加法运算……
#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;}

原创粉丝点击