高精度乘法问题
  • 板块学术版
  • 楼主m_xh
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/10/25 17:15
  • 上次更新2024/10/25 18:54:11
查看原帖
高精度乘法问题
1541903
m_xh楼主2024/10/25 17:15

就是写个高精度乘法函数,但结果输出老实多几个'0',不知道怎么回事

代码

#include<bits/stdc++.h>
using namespace std;
int ss[105],xx[105],anss[505];



string cheng(string s,int x)
{
	int len_a,len_b,len,carry=0,i,j;
	len_a=s.size();
	for(i=0;i<len_a;i++) ss[i]=s[len_a-1-i]-'0';
	int f_s=x;
	while(f_s)
	{
		xx[i]=f_s%10;
		i++;
		f_s/=10;
	}
	len_b=i;
	for(i=0;i<len_b;i++)
	{ 
		for(j=0;j<len_a||carry!=0;j++)
		{
			anss[i+j]+=ss[j]*xx[i]+carry;
			carry=anss[i+j]/10;
			anss[i+j]%=10;
		}
	}
	len=i+j;
	while(anss[len]==0&&len>0) len--;
	string hsans="";
	for(i=len;i>=0;i--){ 
		hsans=hsans+char(anss[i]+'0');
	}
	return hsans;
} 
	
	

int main(){
	
	
	cout<<cheng("4321",1234);
	
	
	return 0;

	
}
2024/10/25 17:15
加载中...