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 }
    高精度模板
  • 相关阅读:
    Odoo电子数据交换(EDI)
    WMS8_仓库配置
    odoo写邮件添加收件人
    Odoo HR Payslip
    openERP邮件(发信、收信)
    Multi-company rules
    MRP Force Reservation的作用
    使用虚拟机VM运行Linux版OpenERP
    采购预付款
    消除递归的方法
  • 原文地址:https://www.cnblogs.com/huyufeifei/p/8521797.html
Copyright © 2011-2022 走看看