站点图标 陌路寒暄

小学生算术

小学生算术

时间: 1ms        内存:128M

描述:

很多小学生在学习加法时,发现“进位”特别容易出错。你的任务是计算两个三位数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据,直到读到两个0(这是输入结束标记)。

输入:

输入两个正整数m,n.(m,n,都是三位数)

输出:

输出m,n,相加时需要进位多少次。

示例输入:

123 456
555 555
123 594
0 0

示例输出:

0
3
1

提示:

参考答案(内存最优[1092]):

#include<stdio.h>
int main()
{
    int a,b,a1,a2,a3,b1,b2,b3,k=0;
    while(scanf("%d %d",&a,&b),a||b)
    {
        a1=a%10;
        a2=a/10%10;
        a3=a/100;
        b1=b%10;
        b2=b/10%10;
        b3=b/100;
        if(a1+b1>=10)
        {
            k++;
            a2++;
        }
        if(a2+b2>=10)
        {
            k++;
            a3++;
        }
        if(a3+b3>=10)
            k++;
        printf("%d\n",k);
        k=0;
    }
    return 0;
}

参考答案(时间最优[0]):

#include<stdio.h>
int main()
{
    int a,b,a1,a2,a3,b1,b2,b3,k=0;
    while(scanf("%d %d",&a,&b),a||b)
    {
        a1=a%10;
        a2=a/10%10;
        a3=a/100;
        b1=b%10;
        b2=b/10%10;
        b3=b/100;
        if(a1+b1>=10)
        {
            k++;
            a2++;
        }
        if(a2+b2>=10)
        {
            k++;
            a3++;
        }
        if(a3+b3>=10)
            k++;
        printf("%d\n",k);
        k=0;
    }
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

退出移动版