瞎胡高精度加法哪里错了
  • 板块灌水区
  • 楼主1ost_star
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/10/10 22:41
  • 上次更新2023/11/2 14:33:45
查看原帖
瞎胡高精度加法哪里错了
1137878
1ost_star楼主2023/10/10 22:41
#include <iostream>
using namespace std;

const int N = 10001;
int first = 0;

void plus_(string n, string m){
	int nlen = n.size(), mlen = m.size();
	int mi = m.size() - 1;
	for(int i = nlen - 1; i >= 0; i--){
		if(mi >= 0){
			n[i] = ((n[i] - '0') + (m[mi] - '0')) + '0';
			mi--;
		}
	}
	for(int i = 0; i < nlen; i++){
		if(n[i] - '0' > 9){
			int ml = 0;
			n[i] = ((n[i] - '0') % 10) + '0';
			if(i != 0){
				n[i - 1] = ((n[i - 1] - '0') + (n[i] - '0') / 10 + 1) + '0';
			}else{
				first = ((n[i - 1] - '0') + (n[i] - '0') / 10 + 1) + '0';
			}
		}
	}
	if(first == 0){
		for(int i = 0; i < nlen; i++){
			cout << n[i];
		}
	}else{
		cout << first;
		for(int i = 0; i < nlen; i++){
			cout << n[i];
		}
	}
}

int main(){
	string n, m;
	cin >> n >> m;
	plus_(n, m);
	return 0;
}
2023/10/10 22:41
加载中...