c++ 小明选择了一个正整数X,然后把它写在黑板上。然后每一天他会擦掉当前数字的最后一位,直到他擦掉所有数位。 在整个过程中,小明会把所有在黑板上出现过的数字记录下来,然后求出他们的总和sum. 例如X = 509, 在黑板上出现过的数字依次是509, 50, 5, 他们的和就是564. 小明现在给出一个sum,小明想让你求出一个正整数X经过上述过程的结果是sum.
时间: 2024-04-28 13:20:21 浏览: 76
c代码-请编写函数sum,其功能是:用for循环语句求1到n之间所有偶数之和(若n为偶数包括n), 并将结果返回给主函数。(n值由主函数传入)
这是一个非常有趣的问题。我们可以从最终的数字sum出发,逆推出原来的数字X。具体的方法是,我们从sum的个位数开始,每次取出最后一位作为X的一位,然后将sum除以10向下取整,直到sum变为0。这样我们就可以得到X的所有位数。
接下来,我们可以从X的最高位开始,每次将X除以10向下取整,同时记录下此时X的值,直到X变为0。这样我们就可以得到X的所有位数,并且保证X是最小的满足要求的数字。
以下是C++代码实现:
阅读全文