萌新求助,这个高精度乘法有什么问题
  • 板块灌水区
  • 楼主Sukilin
  • 当前回复7
  • 已保存回复7
  • 发布时间2023/8/6 15:31
  • 上次更新2023/11/3 05:35:08
查看原帖
萌新求助,这个高精度乘法有什么问题
959201
Sukilin楼主2023/8/6 15:31
#include<bits/stdc++.h>
using namespace std;
struct greatint{
	int num[2023];
	int len;
};

greatint cf(greatint a,greatint b){
	greatint res;
	for(int i=1;i<=a.len;i++){
		for(int j=1;j<=b.len;j++){
			res.num[i+j-1]+=a.num[i]*b.num[j];
		}
	}
	res.len=a.len+b.len;
	for(int i=1;i<=res.len;i++){
		res.num[i+1]+=res.num[i]/10;
		res.num[i]%=10;
	}
	while(res.num[res.len]==0&&res.len>1)	res.len--;
	return res;
}
string x,y;
greatint m,n;
int main(){
	cin>>x>>y;
	for(int i=x.size()-1;i>=0;i--){
		m.num[x.size()-i]=x[i]-'0';
	}
	for(int i=y.size()-1;i>=0;i--){
		n.num[y.size()-i]=y[i]-'0';
	}
	m.len=x.size();
	n.len=y.size();
	for(int i=cf(m,n).len;i>=1;i--){
		cout<<cf(m,n).num[i];
	}
	
	return 0;
}

看起来和书上没有啥区别。 码风不好,见谅。

2023/8/6 15:31
加载中...