文章

74

粉丝

0

获赞

98

访问

8.9k

头像
大整数加法 题解(C++解法,模板题):
P1474 武汉大学机试题
发布于2025年8月11日 12:28
阅读数 165

#include<bits/stdc++.h>
using namespace std;

string Add(string a, string b){
	if(a.length() < b.length()) swap(a, b);
	
	string res(a.length(), '0'); // 设置结果长度
	b.insert(0, a.length()-b.length(), '0'); // 较短位数的数字前补0,方便后续计算
	int carry = 0; // 进位
	for(int i = a.length()-1; i >= 0; i --){
		int sum = (a[i] - '0') + (b[i] - '0') + carry;
		carry = sum / 10;
		res[i] = (sum % 10 + '0'); 
	}
	
	// 如果进位不为0,res前补上进位
	if(carry != 0) res.insert(res.begin(), carry + '0');
	
	return res;
}

int main(){
	
	string a, b;
	while(cin >> a >> b) cout << Add(a, b) << endl;
	
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发