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不了。。。。

 

posted @ 2017-12-26 15:51  TFLSNOI  阅读(435)  评论(0编辑  收藏  举报