1307高精度乘法
题目链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1307
AC不了?。。。。。。
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 char ac[300],bc[300]; 6 int a[300],b[300],c[300]; 7 int la,lb,x,lc; 8 int main() 9 { 10 11 gets(ac);gets(bc); 12 la=strlen(ac);lb=strlen(bc); 13 for(int i=0;i<=la-1;i++)a[la-i]=ac[i]-48;//倒置字符转数字输入整数数组 14 for(int i=0;i<=lb-1;i++)b[lb-i]=bc[i]-48;//倒置字符转数字输入整数数组 15 16 17 for(int i=1;i<=la;i++) 18 { 19 x=0; 20 for(int j=1;j<=lb;j++) 21 { 22 c[i+j-1]=a[i]*b[j]+x+c[i+j-1]; 23 x=c[i+j-1]/10; 24 c[i+j-1]%=10; 25 } 26 c[i+lb]=x; 27 } 28 29 30 lc=la+lb;//两数相乘积的位数不大于两个乘数位数之和 31 while(c[lc]==0&&lc>1)lc--;//去掉前导0 32 for(int i=lc;i>=1;i--)cout<<c[i]; 33 34 return 0; 35 }
死活AC不了。。。。