模板——大数相乘
发布时间:2020-12-14 03:40:29 所属栏目:大数据 来源:网络整理
导读:两个大数相乘 # includestdio.h# includestring.h# includealgorithmusing namespace std;char a[300],b[300];int main(){while(scanf("%s%s",a,b)!=EOF){ if(a[0]=='0'||b[0]=='0') { printf("0n"); continue; } int length_a=strlen(a); int length_b=str
|
两个大数相乘 # include<stdio.h>
# include<string.h>
# include<algorithm>
using namespace std;
char a[300],b[300];
int main()
{
while(scanf("%s%s",a,b)!=EOF)
{
if(a[0]=='0'||b[0]=='0')
{
printf("0n");
continue;
}
int length_a=strlen(a);
int length_b=strlen(b);
reverse(a,a+length_a);
reverse(b,b+length_b);
int ans[600];
memset(ans,sizeof(ans));
for(int i=0;i<length_a;i++)
{
int temp[600],s,c=0;
memset(temp,sizeof(temp));
for(int j=0;j<length_b;j++)
{
s=(a[i]-48)*(b[j]-48)+c;
temp[j+i]=s%10;
c=s/10;
}
int cycle=0;
while(c!=0)
{
temp[cycle+i+length_b]=c%10;
c/=10;
cycle++;
}
c=0;
for(int k=0;k<600;k++)
{
s=temp[k]+ans[k]+c;
ans[k]=s%10;
c=s/10;
}
}
int sign;
for(int i=599;i>=0;i--)
{
if(ans[i])
{
sign=i;
break;
}
}
for(int i=sign;i>=0;i--) printf("%d",ans[i]);
printf("n");
}
return 0;
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
