zoukankan      html  css  js  c++  java
  • 大数加法

    Integer Inquiry POJ - 1503

    解题思路:我是把所有要求的数据全部输入,定义成二维数组,以0结束以记录有几组数据,然后按列计算每列的答案,通过对每位取整取余进行进位及输出。

    1. 这题有一个坑,给出的例子最后一行为0,代表输入结束,也就是说,你必须输入0回车之后才能出结果,而不是输入0代表程序整体结束。
      在这里插入图片描述

    2. 此题前导0是可以计算的。
      在这里插入图片描述

    3. 该代码可以AC,(但不知道为啥)但是只限于给出的字符串位数相同,一旦有一行数据长度不满足,就会存在’\0’的情况,就会造成如图所示情况。但题目存在bug,这样竟然可以AC。
      在这里插入图片描述

    #include<stdio.h>
    #include<string.h>
    #define INF 0x3f3f3f3f
    
    const int N=110;
    char a[N][N];
    int b[N];
    
    int main()
    {
        int i,j,l,k=0;
        int maxx=-INF;
        for(i=0; ; i++) //因为不知道有多少组数据需要相加
        {
            scanf("%s",a[i]);
            l=strlen(a[i]);
            if(l>maxx)
                maxx=l;
            //     if(a[0][0]=='0')
            //注意一下,这样写结果是出不来的
            if(a[i][0]=='0'&&l==1)
            {
                break;
                //需要放在下面,避免把单独的0那一行算进去
            }
            k++;//表示输入了几组数据
        }
            int jinwei=0,c=0;
            for(i=maxx-1; i>=0; i--)
            {
                //倒着计算
                int sum=0;
                for(j=0; j<=k-1; j++)
                {
                    sum=sum+a[j][i]-'0';
                }
                sum=sum+jinwei;//需要加上进位,第一次的进位为0
                
                if(sum>=10)
                {
                    jinwei=sum/10;//这个进位留到下一位数字再加
                    sum=sum%10;//该位取个位数
                }
    
                else
                    jinwei=0;//如果sum不满10的话,无需进位
                //需要把jinwei清零
                b[c++]=sum;//sum为一位数,存到b数组里面去
                //从下标为0开始存//最后倒着输入
    
                if(i==0&&jinwei!=0)
                    b[c++]=jinwei;
                //     b[c]=jinwei;
            }
    
            for(i=c-1; i>=0; i--)
                //  for(i=maxx-1;i>=0;i--)
                printf("%d",b[i]);
            printf("\n");
        return 0;
    }
    
    
  • 相关阅读:
    (转)android
    (转)Eclipse 扩大内存
    (转)setTextColor()的参数设置方式
    RelativeLayout里的gravity不能居中的解决方法
    hdu1010 Tempter of the Bone
    ubuntu系统下如何禁用笔记本触摸板
    十滴水,半成品,大多数关卡可以过去,不过也有几个过不去,仍在调试中,不断更新
    HDU1007 TLE代码和AC代码对比
    hdu1013
    1005 矩阵快速幂
  • 原文地址:https://www.cnblogs.com/OFSHK/p/12650092.html
Copyright © 2011-2022 走看看