求助
  • 板块灌水区
  • 楼主shenzixiang_sb
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/7/22 12:55
  • 上次更新2023/10/27 18:56:42
查看原帖
求助
746324
shenzixiang_sb楼主2022/7/22 12:55

我的程序错了 这是高精度乘法 代码:

#include<iostream>
#include<math.h>
using namespace std;
string xxx(string sa,string sb)
{
int la=sa.size(),lb=sb.size(),lmax=la+lb-1,a[2001]={0},b[2001]={0},s[4002]={0};
string ss="";

for(int i=0;i<la;i++) a[i]=sa[la-i-1]-'0';
for(int i=0;i<lb;i++) b[i]=sb[lb-i-1]-'0';
for(int i=0;i<la;i++)
{
	for(int j=0;j<lb;j++)
	{
		s[i+j]=a[i]*b[j];
	}
}
for(int i=0;i<lmax;i++){s[i+1]+=s[i]/10;s[i]=s[i]%10;}
if(s[lmax]!=0)	lmax++;
while(s[lmax-1]==0)	lmax--;
for(int i=lmax-1;i>=0;i--)ss+=s[i]+'0';
if(lmax==0)ss="0";
return ss;
}
int main(){
	string aa,bb;
	cin>>aa>>bb;
	cout<<xxx(aa,bb);

}
2022/7/22 12:55
加载中...