您的位置:首页 > 编程语言 > C语言/C++

【高精度算法】A*B

2016-01-29 15:51 169 查看
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char a1[50001],b1[50001];
int a[50001],b[50001],i,x,len,j,c[50001];
int main ()
{
gets(a1);
gets(b1);
a[0]=strlen(a1);
b[0]=strlen(b1);
for(i=1;i<=a[0];++i)
a[i]=a1[a[0]-i]-'0';
for(i=1;i<=b[0];++i)
b[i]=b1[b[0]-i]-'0';
for(i=1;i<=a[0];++i)
for(j=1;j<=b[0];++j)
c[i+j-1]+=a[i]*b[j];
len=a[0]+b[0];
for(i=1;i<len;++i)
if(c[i]>9){
c[i+1]+=c[i]/10;
c[i]%=10;}
while(c[len]==0 && len>1)
len--;
for(i=len;i>=1;--i)
printf("%d",c[i]);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ 算法