社区讨论

0分

P1919【模板】高精度乘法 / A*B Problem 升级版参与者 4已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@lo2b672p
此快照首次捕获于
2023/10/23 10:58
2 年前
此快照最后确认于
2023/11/03 11:08
2 年前
查看原帖
CPP
#include<iostream>
using namespace std;

int a[400], b[400], c[400];
string cheng(string s1,string s2){
	int lena = 0 ;
	for(int i=s1.size() -1 ; i >= 0 ; i -- ){
		a[lena++] = s1[i] - '0';
	}
	int lenb = 0;
	for(int i=s2.size() -1 ; i >= 0 ; i -- ){
		b[lenb++] = s2[i] - '0';
	}
	int lenc = max(lena ,lenb);
	for(int i = 0 ; i < lenb ; i ++ ){
		for(int j = 0 ; j <= lena ; j ++ ){
			c[i + j] = a[j] * b[i] + c[i + j];
			c[i + j + 1] = c[i + j] / 10;
			c[i + j] %= 10;
		}
	}
	lenc = lena + lenb - 1;
	if(c[lenc] != 0){
		lenc++;
	} 
	string res = "";
	for(int i = lenc-1; i>=0; i--) {
		res += to_string(c[i]);
	}
    return res;
}
int main(){
	string s1 = "1";
	string s2 = "654321";
	cout << cheng(s1 , s2) ;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...