1. 程式人生 > >南陽oj 74題------小學生算術

南陽oj 74題------小學生算術

小學生算術

時間限制: 3000 ms  |  記憶體限制: 65535 KB 難度: 1
描述
很多小學生在學習加法時,發現“進位”特別容易出錯。你的任務是計算兩個三位數在相加時需要多少次進位。你編制的程式應當可以連續處理多組資料,直到讀到兩個0(這是輸入結束標記)。
輸入
輸入兩個正整數m,n.(m,n,都是三位數)
輸出
輸出m,n,相加時需要進位多少次。
樣例輸入
123 456
555 555
123 594
0 0
樣例輸出
0
3 
1

題目連結:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=74

程式碼:

#include <stdio.h>
int main()
{
    int a,b,t,x1,x2,y1,y2,z1,z2;
    while(scanf("%d%d",&a,&b),a!=0&&b!=0)
    {
        t=0;
        x1=a%10;
        y1=a/10%10;
        z1=a/100;
        x2=b%10;
        y2=b/10%10;
        z2=b/100;
        if(x1+x2>=10)//確定個位是否進位
        {
            t++;
            if(y1+y2+1>=10)//個位進位十位相加需+1
            {
                t++;
                if(z1+z2+1>=10)//十位進位百位+1
                {
                    t++;
                }
            }
            else//十位不進位
            {
                if(z1+z2>=10)
                {
                    t++;
                }
            }
        }
        else//個位不進位
        {
            if(y1+y2>=10)//十位進位
            {
                t++;
                if(z1+z2+1>=10)
                {
                    t++;
                }
            }
            else//十位不進位
            {
                if(z1+z2>=10)
                {
                    t++;
                }
            }

        }
        printf("%d\n",t);
    }
    return 0;
}