• 3117 高精度乘法


    3117 高精度练习之乘法

     

     时间限制: 1 s
     空间限制: 128000 KB
     题目等级 : 黄金 Gold
     
     
     
    题目描述 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<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 }
  • 相关阅读:
    css子元素水平垂直居中
    js 防抖节流
    NOIP 游记
    flash player播放器用法
    android设备连接不上电脑的解决方法
    AndroidStudio自动下载gradle失败问题解决
    3组Alpha冲刺5/6
    3组Beta冲刺2/5
    3组Beta冲刺5/5
    3组Beta冲刺1/5
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/6550366.html
Copyright © 2020-2023  润新知