40分求助!!!(在P1601A+B Problem(高精)也发了)
查看原帖
40分求助!!!(在P1601A+B Problem(高精)也发了)
644394
dongrq_cs楼主2023/4/1 19:05
#include <bits/stdc++.h>
using namespace std;
void StrToInt(char s[],int t[]){
	int len = 0;
	for(len = 0;s[len] != '\0';len++){
		;
	}
	t[0] = len;
	int j = len - 1;
	for(int i = 1;i <= len;i++,j--){
		t[i] = s[j] - '0';
	}
}
void add(int a[],int b[],int c[]){
	for(int i = 1;i <= b[0];i++){	
		int x = 0;
		for(int j = 1;j <= a[0];j++){
			c[i + j - 1] = b[i] * a[j] + x + c[i + j - 1];
			x = c[i + j - 1] / 10;
			c[i + j - 1] %= 10;
		}
		c[a[0] + i] += x;
	}
	int k = a[0] + b[0];
	while(c[k] == 0){
		k--;
	}
	c[0] = k;
}
int main(){
	char d[210],r[210];
	int a[210] = {0},b[210] = {0},c[210] = {0};
	cin >> d >> r;
	StrToInt(d,a);
	StrToInt(r,b);
	add(a,b,c);
	for(int i = c[0];i >= 1;i--){
		cout << c[i];
	}
	return 0;
}
2023/4/1 19:05
加载中...