几个高精度数相乘,不知道哪里错了,好像卡在了第46行函数里面
  • 板块学术版
  • 楼主XSean
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/8/14 11:58
  • 上次更新2023/10/27 15:29:54
查看原帖
几个高精度数相乘,不知道哪里错了,好像卡在了第46行函数里面
546830
XSean楼主2022/8/14 11:58
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
string s[1001]={};
string mul(string x,string y){
	int a[2001]={},b[2001]={},c[4001]={};
	string C;
	int len1=x.length(),len2=y.length();
	for(int i=len1-1,j=1;i>=0,j<=len1;i--,j++){
		a[j]=x[i]-48;
	}
	for(int i=len2-1,j=1;i>=0,j<=len2;i--,j++){
		b[j]=y[i]-48;
	}
	for(int i=1;i<=len2;i++){
		for(int j=1;j<=len1;j++){
			c[i+j-1]+=a[j]*b[i];
			c[i+j]=c[i+j-1]/10;
			c[i+j-1]%=10; 
		}
	}
	int maxl=len1+len2;
	for(int i=maxl;i>=1;i--){
		if(c[i]==0){
			maxl--;
		}else{
			break;
		}
	} 
	for(int i=maxl;i>=1;i++){
		C+=char(48+c[i]);
	}
	return C;
}
int main(){
/*
freopen (".in","r",stdin);
freopen (".out","w",stdout);
*/
int n;
cin>>n;
for(int i=1;i<=n;i++){
	cin>>s[i];
}
for(int i=2;i<=n;i++){
	s[i]=mul(s[i-1],s[i]);//46行 
}
cout<<s[n];




/*
fclose(stdin);
fclose(stdout);
*/
	return 0;
}
2022/8/14 11:58
加载中...