• [模板]大整数乘法——累加型


     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 #define N 10000
     5 
     6 int main()
     7 {  
     8     char a[N],b[N];
     9     int aa[N],bb[N],mul[N];
    10     memset(aa,0,sizeof(aa));
    11     memset(bb,0,sizeof(bb));
    12     memset(mul,0,sizeof(mul));
    13     gets(a);
    14     gets(b);
    15     int i,j,l1=strlen(a),l2=strlen(b);
    16     for(i=l1-1,j=0;i>=0;i--)
    17         aa[j++]=a[i]-'0';
    18     for(i=l2-1,j=0;i>=0;i--)
    19         bb[j++]=b[i]-'0';
    20     for(i=0;i<l1;i++)
    21         for(j=0;j<l2;j++)
    22             mul[i+j]+=aa[i]*bb[j];
    23     for(i=0;i<N;i++)
    24         if(mul[i]>=10){
    25             int re=mul[i]/10;
    26             mul[i]%=10;
    27             mul[i+1]+=re;
    28         }
    29     bool f=false;
    30     for(i=N-1;i>=0;i--){
    31         if(mul[i]!=0)
    32             f=true;
    33         if(f)
    34             printf("%d",mul[i]);
    35     }  
    36     if(!f)
    37         printf("0");
    38     printf("
    ");
    39     return 0;
    40 }
    41 /*
    42 3388495837466721394368393204672181522815830368604993048084925840555281177
    43 11658823406671259903148376558383270818131012258146392600439520994131344334162924536139
    44 
    45 395058745832651445264197678006144819960207764603049364541393760515793556265
    46 2945068360972784246821953509354430587049025199565533571020979922648497794944295
    47 5603
    48 */
    正因为是最弱,所以才理解智慧之强
  • 相关阅读:
    预处理命令
    函数
    结构体
    字符数组
    数组
    文件
    用 typedef 定义类型
    枚举类型
    联合
    位运算
  • 原文地址:https://www.cnblogs.com/Yanick/p/11234274.html
Copyright © 2020-2023  润新知