• 高精模板


    加法

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    const int maxn=600;
    char x[maxn],y[maxn];
    int a[maxn],b[maxn],c[maxn];
    int m;
    int main()
    {
        scanf("%s",x);
        scanf("%s",y);
        int lena=strlen(x);
        int lenb=strlen(y);
        for(int i=0;i<lena;i++)
        {
            a[lena-i]=(int)(x[i]-48);
        }
        for(int i=0;i<lenb;i++)
        {
            b[lenb-i]=(int)(y[i]-48);
        }
        m=max(lena,lenb);
        for(int i=1;i<=m;i++)
        {
            c[i]+=a[i]+b[i];
            if(c[i]>=10)
            {
                c[i+1]+=c[i]/10;
                c[i]%=10;
            }
        }
        if(c[m+1]) m++;
        for(int i=m;i>=1;i--)
        {
            printf("%d",c[i]);
        }
        return 0;
    }


    P1255 数楼梯

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    typedef long long ll;
    const int maxn=5020;
    int n;
    ll f[maxn][5003];
    int len=1;
    int i;
    void goon(int x)
    {
        for(i=1;i<=len;i++)
        {
            f[x][i]=f[x-1][i]+f[x-2][i];
        }
        for(int i=1;i<=len;i++)
        {
            if(f[x][i]>=10)
            {
                f[x][i+1]+=f[x][i]/10;
                f[x][i]%=10;
            }
        }
        if(f[x][len+1]) len++;
    }
    
    int main()
    {
        scanf("%d",&n);
        f[1][1]=1;f[2][1]=2;
        for(int j=3;j<=n;j++)
        {
            goon(j);
        }
        for(int i=len;i>=1;i--)
        {
            printf("%d",f[n][i]);
        }
        return 0;
    }

     乘法

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    char s[20100];
    int a[20100],b[20100];
    int c[20100];
    int len1,len2;
    int main()
    {
        scanf("%s",s);
        len1=strlen(s);
        if(len1==1&&s[0]=='0') 
        {
            printf("0");
            return 0;
        }
        /*for(int i=len1-1;i>=0;i--)
        {
            a[i]=s[i]-'0';
        }*/
        for(int i=0;i<len1;i++) a[i]=s[len1-i-1]-'0';
        scanf("%s",s);
        len2=strlen(s);
        if(len2==1&&s[0]=='0') 
        {
            printf("0");
            return 0;
        }
        /*for(int i=len2-1;i>=0;i--)
        {
            b[i]=s[i]-'0';
        }*/
        for(int i=0;i<len2;i++) b[i]=s[len2-i-1]-'0';
        for(int i=0;i<len1;i++)
        {
            for(int j=0;j<len2;j++)
            {
                c[i+j]+=a[i]*b[j];
            }
        }
        int high=len1+len2-1;
        for(int i=0;i<high;i++)
        {
            if(c[i]>=10)
                {
                    c[i+1]+=c[i]/10;
                    c[i]=c[i]%10;
                }
        }
        if(c[high]) high++;
        for(int i=high-1;i>=0;i--)
        {
            printf("%d",c[i]);
        }
        return 0;
    }
  • 相关阅读:
    arcgis server 9.2代码阅读笔记一:在图层中增加一个点
    mapx+vb实战摘要
    F# 程式設計入門 (1)
    arcgis server 9.2代码阅读笔记二:在页面上动态加载图层
    F#维基百科,自由的百科全书(重定向自F#)
    用VC++进行MapX二次开发
    sdsalea process in sd
    abap关于sap地址,传真,邮箱的地址读取
    SDEnterprise Structure Configuration
    ABAP通过LDB_PROCESS函数使用逻辑数据库
  • 原文地址:https://www.cnblogs.com/WHFF521/p/11544807.html
Copyright © 2020-2023  润新知