• 1027 大数乘法


    给出2个大整数A,B,计算A*B的结果。

    Input

    第1行:大数A 第2行:大数B (A,B的长度 <= 1000,A,B >= 0)

    Output

    输出A*B

    Input示例

    123456

    234567

    Output示例

    28958703552

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <string.h>
     4 
     5 int judge(char* a)
     6 {
     7     int i;
     8     for (i = 0; i < strlen(a); ++i) {
     9         if (a[i] != '0')
    10             return 0;
    11     }
    12     return 1;
    13 }
    14 
    15 void multiplicative(char* a, char* b)
    16 {
    17     int lena = strlen(a), lenb = strlen(b);
    18     int len = lena + lenb;
    19     int i, j;
    20     int a1[1005]={0}, b1[10005]={0}, r[10005]={0};
    21     
    22     for (i = 0; i < lena; ++i)
    23         a1[i] = a[lena-i-1] - '0';
    24     for (i = 0; i < lenb; ++i)
    25         b1[i] = b[lenb-i-1] - '0';
    26     for (i = 0; i < lena; ++i) {
    27         for (j = 0; j < lenb; ++j) {
    28             r[i+j] += a1[i] * b1[j];
    29         }
    30     }
    31     for (i = 0; i < len; ++i) {
    32         r[i+1] += r[i] / 10;
    33         r[i] = r[i] % 10;
    34     }
    35     while (!r[len-1])
    36         len--;
    37     for (i = 0; i < len; ++i)
    38         a[i] = r[len-i-1] + '0';
    39     if (judge(a))
    40         strcpy(a, "0");
    41     printf("%s", a);
    42 }
    43 
    44 int main ()
    45 {
    46     char A[10005], B[10005];
    47     int fa, fb;
    48     scanf("%s%s", A, B);
    49     multiplicative(A, B);
    50     return 0;
    51 }
  • 相关阅读:
    串 --- 匹配
    串 --- 匹配
    计算几何 --- 哈希优化
    哈希 --- 线性探测法
    拓扑排序 --- 反向建图
    swift学习
    CocoaPods安装教程 pod setup很慢解决方案
    Adobe Fireworks CS6 Mac破解版
    iStat for mac
    mac环境下清理系统垃圾clearMyMac 3.9 破解版
  • 原文地址:https://www.cnblogs.com/clairvoyant/p/5627591.html
Copyright © 2020-2023  润新知