游客 Signup | Login
中文 | En

1958 - 小学生算数

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

Input

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

Output

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

Examples

Input

123 456
555 555
123 594
0 0

Output

0
3
1

Solution C

#include<stdio.h>
int main()
{
    int m,n,a,b,c,i,p,q;
    while(~scanf("%d%d",&m,&n))
    {
        i=0;p=m;q=n;
        while(p!=0&&q!=0)
        {
            a=p%10;
            b=q%10;
            c=a+b;
            if(c>=10)
                {
                    i++;
                    p=p/10+1;
                    q=q/10;
                }
                else
                {
                    p=p/10;
                    q=q/10;
                }
        }
            if(m==0&&n==0)
            break;
            printf("%d\n",i);
    }
    return 0;
}

Solution C++

#include<iostream>
using namespace std;
int a, b;
int A[5], B[5], sum, i;
int main()
{
	while(1)
	{
		cin >> a >> b;
		if(a==0&&b==0)
			break;
		sum=0;
		i = 0;
		while (a > 0)
		{
			A[++i] = a % 10;
			a = a / 10;
		}
		i = 0;
		while (b > 0)
		{
			B[++i] = b % 10;
			b = b / 10;
		}
		for (i = 1; i <= 3; i++)
		{
			if (A[i] + B[i] >= 10)
			{
				sum++;
				A[i + 1] = A[i + 1] + 1;
			}
		}
		cout << sum <<endl;
	} 
	
	return 0;
}
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题