zoukankan      html  css  js  c++  java
  • 高精度模板

    好,这就是naive的高精度模板。目前只有加法&乘法。

    http://www.mamicode.com/info-detail-454902.html 可以参考这个。

     1 #include <cstdio>
     2 #include <iostream>
     3 #include <algorithm>
     4 using namespace std;
     5 const int N = 10000;
     6 string add(string a,string b)
     7 {
     8     string ans="";
     9     int aa[N],bb[N];
    10     fill(aa,aa+N,0);
    11     fill(bb,bb+N,0);
    12     int la=a.size();
    13     int lb=b.size();
    14     int len=max(la,lb);
    15     for(int i=0;i<la;i++) aa[la-i-1]=a[i]-'0';
    16     for(int i=0;i<lb;i++) bb[lb-i-1]=b[i]-'0';
    17     for(int i=0;i<len;i++)
    18     {
    19         aa[i]+=bb[i];
    20         if(aa[i]>9)
    21         {
    22             aa[i+1]+=aa[i]/10;
    23             aa[i]%=10;
    24             if(i+1==len) len++;
    25         }
    26     }
    27     for(int i=len-1;i>=0;i--) ans+=(aa[i]+'0');
    28     return ans;
    29 }
    30 
    31 string mul(string a,string b)
    32 {
    33     string ans="";
    34     int aa[N],bb[N],cc[N];
    35     int la=a.size();
    36     int lb=b.size();
    37     int len=la+lb-1;
    38     fill(aa,aa+N,0);
    39     fill(bb,bb+N,0);
    40     fill(cc,cc+N,0);
    41     for(int i=0;i<la;i++) aa[la-i-1]=a[i]-'0';
    42     for(int i=0;i<lb;i++) bb[lb-i-1]=b[i]-'0';
    43     for(int i=0;i<la;i++)
    44     {
    45         for(int j=0;j<lb;j++)
    46         {
    47             cc[i+j]+=aa[i]*bb[j];
    48         }
    49     }
    50     for(int i=0;i<len;i++)
    51     {
    52         if(cc[i]>9)
    53         {
    54             cc[i+1]+=cc[i]/10;
    55             cc[i]%=10;
    56             if(i+1==len) len++;
    57         }
    58     }
    59     for(int i=len-1;i>=0;i--) ans+=(cc[i]+'0');
    60     return ans;
    61 }
    62 
    63 int main()
    64 {
    65     string a,b;
    66     cin>>a>>b;
    67     cout<<add(a,b)<<endl;
    68     cout<<mul(a,b)<<endl;
    69     return 0;
    70 }
    高精度模板
  • 相关阅读:
    学习 swift (1)
    Sbulime Text 2 修改选中字符串的颜色
    js string 和 json 互转
    Mac OSX sublime text2 各种快捷键
    webstorm keymap
    python http post json
    node.js async 几个函数
    python 爬图 helloworld
    合服导致 globalserver 起不来的问题
    ssh 登陆 端口转发
  • 原文地址:https://www.cnblogs.com/huyufeifei/p/8521797.html
Copyright © 2011-2022 走看看