//求进位的次数:注意两个加数的位数有可能不相等!
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string str1, str2;
int len1, len2, len, i, ans, tmp;
while (cin >> str1 >> str2){
if (str1 == "0" && str2 == "0") break;
ans = 0;
len1 = str1.length();
len2 = str2.length();
len = len1 >= len2 ? len1 : len2;
if (len1 > len2){
for (i = 0; i < len1 - 1; i++)
str2.push_back('0');
reverse(str2.begin(), str2.end());
}
else if (len2 > len1){
for (i = 0; i < len2 - 1; i++)
str1.push_back('0');
reverse(str1.begin(), str1.end());
}
tmp = 0;
while (len){
tmp += (str1[len-1]-48) + (str2[len-1]-48);
if (tmp >= 10){
ans++;
tmp /= 10;
}
else tmp = 0;
len--;
}
if (ans){
if (ans == 1)
cout << ans << " carry operation." << endl;
else
cout << ans << " carry operations." << endl;
}
else
cout << "No carry operation." << endl;
}
system("pause");
}
poj 2562 Primary Arithmetic
最新推荐文章于 2023-08-02 16:28:31 发布