您的位置:首页 > 其它

【BZOJ】1754: [Usaco2005 qua]Bull Math

2017-09-22 20:15 309 查看

【算法】高精度乘法

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=100;

char s1[maxn],s2[maxn];
int a[maxn],b[maxn],c[maxn],lena,lenb,lenc;
int main(){
scanf("%s%s",s1,s2);
lena=strlen(s1);lenb=strlen(s2);
for(int i=0;i<lena;i++)a[lena-i]=s1[i]-'0';
for(int i=0;i<lenb;i++)b[lenb-i]=s2[i]-'0';
for(int i=1;i<=lena;i++){
int x=0;
for(int j=1;j<=lenb;j++){
x=a[i]*b[j]+x+c[i+j-1];
c[i+j-1]=x%10;
x/=10;
}
c[i+lenb]=x;
}
lenc=lena+lenb;
while(lenc>1&&!c[lenc])lenc--;
for(int i=lenc;i>=1;i--)printf("%d",c[i]);
return 0;
}
View Code

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: