• noi 大整数加法(多组输入)


    此题用字符串读入就行,在转化成数组,模拟竖式加法就行,主要是注意前导0,还有0+0这种情况,

    #include<stdio.h>
    #include<string.h>
    
    int main()
    {
        char a[300],b[300];
        while(scanf("%s %s",a,b)!=EOF)///得到两个字符串,即两个大整数
        {
            int i,len1,len2,len,a1[300],b1[300],c[300];
            memset(a1,0,sizeof(a1));///清空数组
            memset(b1,0,sizeof(b1));
            memset(c,0,sizeof(c));///用来存储答案
            len1=strlen(a);///获得两个字符串的长度
            len2=strlen(b);
            if(len1>len2)///取较长的字符串的长度为循环次数
                len=len1;
            else
                len=len2;
            for(i=0;i<len1;i++)///将两个字符串转化为数组,注意这里逆序了,便于对齐从最后一位开始加
                a1[i]=a[len1-i-1]-'0';
            for(i=0;i<len2;i++)
                b1[i]=b[len2-i-1]-'0';
            for(i=0;i<len;i++)///进行相加操作
            {
                c[i]+=(a1[i]+b1[i]);
                if(c[i]>9)///如果该位大于9了,要进行进位
                {
                    c[i]-=10;
                    c[i+1]++;
                }
            }
            while(c[i]==0)///输出的时候去除前导0
                i--;
            if(i<0)///如果所有的都为0,说明答案就是0,直接输出0
                printf("0
    ");
            else
            {
            for(;i>=0;i--)///答案数组从高位开始输出
                printf("%d",c[i]);
            printf("
    ");
            }
    
        }
        return 0;
    }

     

  • 相关阅读:
    软件测试 (三) 界面测试
    软件测试 (二) 六年软件测试感悟
    软件测试 (一) 软件测试方法大汇总
    第二阶段站立会议6
    第二阶段站立会议5
    构建之法阅读笔记04
    第二阶段站立会议4
    第二阶段站立会议3
    第二阶段站立会议2
    第二阶段站立会议1
  • 原文地址:https://www.cnblogs.com/tp25959/p/10235978.html
Copyright © 2020-2023  润新知