// Primary Arithmetic (小学生算术)
// PC/UVa IDs: 110501/10035, Popularity: A, Success rate: average Level: 1
// Verdict: Accepted
// Submission Date: 2011-05-27
// UVa Run Time: 0.068s
//
// 版权所有(C)2011,邱秋。metaphysis # yeah dot net
//
// 因为只是统计进位,故不需保存相加结果,可以利用这一点。注意输出单复数的差别。
#include <iostream>
using namespace std;
int main(int ac, char *av[])
{
int first, second;
while (cin >> first >> second, first || second)
{
int carry = 0;
int counter = 0;
while (first && second)
{
carry = (((first % 10 + second % 10 + carry) > 9) ? 1 : 0);
counter += carry;
first /= 10;
second /= 10;
}
while (first)
{
carry = ((first % 10 + carry > 9) ? 1 : 0);
counter += carry;
first /= 10;
}
while (second)
{
carry = ((second % 10 + carry > 9) ? 1 : 0);
counter += carry;
second /= 10;
}
if (counter > 1)
cout << counter << " carry operations." << endl;
else if (counter == 1)
cout << "1 carry operation." << endl;
else
cout << "No carry operation." << endl;
}
return 0;
}
UVa Problem 10035 Primary Arithmetic (小学生算术)
最新推荐文章于 2018-03-15 17:01:44 发布
本文介绍了一个简单而有效的算法,用于统计两个整数相加过程中的进位次数。通过逐位比较,该算法能够准确地计算出进位操作的数量,并正确处理不同情况下的单复数表述。
245

被折叠的 条评论
为什么被折叠?



