您的位置:澳门402永利com > 关于计算机 > 高精度乘法,高精度练习之乘法

高精度乘法,高精度练习之乘法

发布时间:2019-09-23 20:45编辑:关于计算机浏览(167)

    3117 高精度演练之乘法

     

     时限: 1 s

     空间限制: 12七千KB

     标题等第 : 黄金Gold

    题解

     

     

     

    难点陈说 Description

    交由八个正整数A和B,总括A*B的值。保险A和B的位数不超过500位。

    输入描述 Input Description

    读入多个用空格隔离的正整数

    输出描述 Output Description

    输出A*B的值

    样例输入 Sample Input

    3 12

    样例输出 萨姆ple Output

    36

    数据范围及提醒 Data Size & Hint

    五个正整数的位数不当先500位

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 using namespace std;
     5 char a[100001];
     6 char b[100001];
     7 int a1[10001];
     8 int b1[10001];
     9 int c[10001];
    10 int main()
    11 {
    12     scanf("%s",&a);
    13     scanf("%s",&b);
    14     int la=strlen(a);
    15     int lb=strlen(b);
    16     for(int i=0;i<=la-1;i++)
    17     a1[la-i]=a[i]-48;
    18     for(int i=0;i<=lb-1;i++)
    19     b1[lb-i]=b[i]-48;
    20     int i=0,j;
    21     int x=0;
    22     for( i=1;i<=la;i++)
    23     {
    24         x=0;
    25         for( j=1;j<=lb;j++)
    26         {
    27             c[i+j-1]=a1[i]*b1[j]+x+c[i+j-1];
    28             x=c[i+j-1]/10;
    29             c[i+j-1]=c[i+j-1]%10;
    30         }
    31         c[i+lb]=x;
    32     }
    33 
    34     int lc=la+lb;
    35     while(c[lc]==0&&lc>1)
    36     lc--;
    37     for(int i=lc;i>=1;i--)
    38     cout<<c[i];
    39     return 0;
    40 }
    

     

    3117 高精度演习之乘法

     

    时限: 1 s

    空间限制: 12九千 KB

    标题等第 : 白金 高尔德

     

     

     

    难题陈诉 Description

    交由多少个正整数A和B,总括A*B的值。保障A和B的位数不超越500位。

    输入描述 Input Description

    读入几个用空格隔离的正整数

    出口描述 Output Description

    输出A*B的值

    样例输入 Sample Input

    3 12

    样例输出 Sample Output

    36

    数码范围及提示 Data Size & Hint

    四个正整数的位数不超过500位

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<string>
     4 #include<cstring>
     5 
     6 using namespace std;
     7 const int N=1001;
     8 
     9 char aa[N];
    10 char bb[N];
    11 int a[N];
    12 int b[N];
    13 int c[N];
    14 
    15 int main()
    16 {
    17     scanf("%s%s",aa,bb);
    18     int la=strlen(aa);
    19     int lb=strlen(bb);
    20     for(int i=0;i<la;i++)
    21        a[i+1]=aa[la-i-1]-'0';
    22     for(int i=0;i<lb;i++)
    23        b[i+1]=bb[lb-i-1]-'0';
    24     
    25     for(int i=1;i<=la;i++)
    26     {
    27         int x=0;
    28         for(int j=1;j<=lb;j++)
    29           {
    30               c[i+j-1]+=a[i]*b[j]+x;
    31               x=c[i+j-1]/10;
    32               c[i+j-1]%=10;
    33           }   
    34         c[i+lb]=x;  
    35     }
    36     int j=lb+la;
    37     while(!c[j]&&j>1) j--;
    38     for(int i=j;i>=1;i--)
    39        cout<<c[i];
    40 }
    

     

    本文由澳门402永利com发布于关于计算机,转载请注明出处:高精度乘法,高精度练习之乘法

    关键词:

上一篇:浅谈php安全性需要注意的几点事项

下一篇:没有了