求助一本通
  • 板块学术版
  • 楼主CLY__Blue
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/7/22 14:36
  • 上次更新2023/10/27 18:55:36
查看原帖
求助一本通
749826
CLY__Blue楼主2022/7/22 14:36

一本通的1307题代码不对。听起来很复杂其实就是高精度乘法,而且只要求得数代码:

#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 14:36
加载中...