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 自动生成**