zoukankan      html  css  js  c++  java
  • 算法笔记--高精度算法

    算法笔记

    高精度乘法:

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    const int M=1e3+5;
    char s1[M],s2[M];
    int a[M],b[M],res[M]; 
    int main()
    {
        gets(s1);
        gets(s2);
        int c=0;
        for(int i=strlen(s1)-1;i>=0;i--)
        {
            a[c++]=s1[i]-'0';    
        }
        c=0;
        for(int i=strlen(s2)-1;i>=0;i--)
        {
            b[c++]=s2[i]-'0';
        }
        memset(res,0,sizeof(res));
        for(int i=0;i<strlen(s2);i++)
        {
            for(int j=0;j<strlen(s1);j++)
            res[i+j]+=b[i]*a[j];
        }
        for(int i=0;i<strlen(s1)+strlen(s2)+2;i++)
        {
            if(res[i]>=10)
            {
                res[i+1]+=res[i]/10;
                res[i]%=10;
            }
        }
        int i=strlen(s1)+strlen(s2)+2;
        for(;res[i]==0&&i>=0;i--);
        for(;i>=0;i--)cout<<res[i];
        cout<<endl;
        return 0;
    } 

     未完待续。。。

  • 相关阅读:
    Minimum Path Sum
    Unique Paths II
    Unique Paths
    Rotate List
    Permutation Sequence
    Merge Intervals
    Jump Game
    Group Anagrams
    Combination Sum II
    评分
  • 原文地址:https://www.cnblogs.com/widsom/p/7132949.html
Copyright © 2011-2022 走看看