C++代码带注释
查看原帖
C++代码带注释
1334670
Luckyttt楼主2024/6/20 13:38

//P5744 【深基7.习9】培训
// 太不容易了:(
#include<iostream>
using namespace std;
int main()
{
    string a,b;
    int i;
    cin>>a;
    cin>>b;
	int la,lb;
	la=a.length();
	lb=b.length();
    if(la<lb) 
    {//ab变成一样长
        for(i=1;i<=lb-la;i++)
            a='0'+a;
    }
    if(la>lb) 
    {
        for(i=1;i<=la-lb;i++)
            b='0'+b;
    }
	// 开始处理加法
    string str=""; //放加法运算结果
    int m,n=0;//m低位0-9,n表示进位0/1,初始为0
    int a1,b1;
    for(i=a.length()-1;i>=0;i--) // 这里的a.length()不能用la
    {
        a1=(int)(a[i]-'0');b1=(int)(b[i]-'0');
        m = (a1+b1+n)%10;
        n = (a1+b1+n)/10;
        str= (char)(m+48) + str;
    }
    if(i==-1 && n==1) str=char(n+48) + str; // 最高一位可能需要拓展,如10+90=100;此时m=0 n=1
    cout<<str<<endl;
	return 0;
}
2024/6/20 13:38
加载中...