小学生算术

小学生算术

时间限制:3000 ms | 内存限制:65535 KB
难度:1
描述
很多小学生在学习加法时,发现“进位”特别容易出错。你的任务是计算两个三位数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据,直到读到两个0(这是输入结束标记)。
输入
输入两个正整数m,n.(m,n,都是三位数)
输出
输出m,n,相加时需要进位多少次。
样例输入
123 456
555 555
123 594
0 0
样例输出
0
3
1

#include <iostream>
using namespace std;
int  jin(int m,int n)
{   
    int a=n%10;     //百位数
    int b=n/10%10;  //十位数
    int c=n/100;    //个位数
    int d=m%10;     //百位数
    int e=m/10%10;  //十位数
    int f=m/100;    //个位数
    int count=0;
    if(a+d>=10)
    {
        count++;
        int g=(a+d)%10;
        if(b+e+g>=10)
        {
            count++;
            int h=(b+e)%10;
            if(c+f+h>=10)
            {
                count++;
            }
        }

    }
    else if(a+d<10&&b+e>=10)
    {
        count++;
        int i=(b+e)%10;
        if(i+c+f>=10)
        {
            count++;
        }
    }
    else
    {
        if(c+f>=10)
        {
            count++;
        }   
    }
    return count;

}
int main()
{
    int m,n;    
    while(cin>>m>>n)
    {   
        if(m!=0&&n!=0)
        {
            cout<<jin(m,n);
        }
        else
        {
            break;      
        }
        cout<<endl;
    }       
    return 0;
}
点赞