• C语言超大数据相加计算整理


    在做ACM 1002题时,整理得到。

    #include<stdio.h>
    #include<string.h>
    #define MAX 1000
    void zero(char *s,int len)
    {
    int i;
    for(i=0;i<len;i++)
    s[i]-='0';
    }
    void back(char *s,int len)
    {
    int i;
    for(i=0;i<len;i++)
    s[i]+='0';
    }
    int main()
    {
    char a[20][MAX],b[20][MAX],c[20][MAX+2];
    int alen,blen;
    int i,T,k[20]={0},t,j,n;
    do
    {
    scanf("%d",&T);
    }while(T<=0||T>20) ;
    for(i=0;i<T;i++)
    {
    scanf("%s %s",a[i],b[i]);
    alen=strlen(a[i]) ;
    blen=strlen(b[i]);
    zero(a[i],alen);
    zero(b[i],blen);
    n=alen>blen?alen:blen;
    for(j=0;j<n+5;j++)
    c[i][j]=0;
    for(j=alen-1,n=blen-1;(n>=0)&&(j>=0);j--,n--,k[i]++)
    {
    if((c[i][k[i]]=a[i][j]+b[i][n]+c[i][k[i]]) >9)
    {
    c[i][k[i]+1]=1;
    c[i][k[i]]=c[i][k[i]]%10;
    }
    }
    while(j>=0)
    {
    if((c[i][k[i]]=c[i][k[i]]+a[i][j])>9)
    c[i][k[i]+1]=1;
    c[i][k[i]]=c[i][k[i]]%10;
    j--;
    k[i]++;
    }
    while(n>=0)
    {
    if((c[i][k[i]]=c[i][k[i]]+b[i][n])>9)
    c[i][k[i]+1]=1;
    c[i][k[i]]=c[i][k[i]]%10;
    n--;
    k[i]++;
    }
    for(;c[i][k[i]]==0;k[i]--);
    back(a[i],alen);
    back(b[i],blen);
    }

    for(i=0;i<T;i++)
    {
    printf("Case %d: ",i+1); printf("%s + %s = ",a[i],b[i]);
    for(;k[i]>=0;k[i]--)
    printf("%d",c[i][k[i]]);
    if(i<T-1)printf(" ");
    else printf(" ");
    }
    return 0;
    }

    What I don't dare to say is I can't!
  • 相关阅读:
    nodejs
    flask中flash(闪现)的使用
    flask中logger日志的使用
    flask中session的使用
    flask开启调试模式
    flask中静态文件的引入
    flask中模板引入
    python web开发屠龙刀flask
    python操作excel基础1-环境搭建
    php算法-dijkstra
  • 原文地址:https://www.cnblogs.com/sytu/p/mojiexiaolong.html
Copyright © 2020-2023  润新知