SP23842 PROFF - Professor Farouk Question
题目描述
Farouk 教授向他的学生出了一道题目,让他们将一个整型变量设置为 2147483647,然后再给这个变量加 1。然而,他们却发现计算结果变成了 -2147483648,而不是期望的 2147483648。一名学生想到可以使用 long 类型,还有另一名学生则建议使用 Java 中的 BigInteger 类型。尽管 Farouk 教授知道这些方法,他却想问:如果没有任何数据类型可以承载计算结果,你会怎么办?
有一名学生想出了一个很好的解决方案:我们可以逐位从右到左相加两个多位数,并将结果打印出来。采用这种方法时,会出现进位。例如:
```
1234
+ 5678
______
6912
```
首先,4 + 8 = 2,然后产生进位 1。
进位 1 + 3 + 7 = 11,再产生进位 1。
进位 1 + 2 + 6 = 9,进位变为 0。
最后,1 + 5 = 6。
现在,你的任务是编写一个程序,计算相加两个数时产生了多少次进位。
输入格式
每行包含两个不超过 10 位的无符号整数。最后一行输入为 `0 0`,表示输入结束。
输出格式
对于输入中除最后一行外的每一组数据,计算并输出两个数相加时产生的进位次数,输出格式如示例所示。
### 示例
```
输入:
123 456
```
**本翻译由 AI 自动生成**