Power digit sum
215=32768 and the sum of its digits is 3+2+7+6+8=26.
What is the sum of the digits of the number 21000?
215=32768,而32768的各位数字之和是 3+2+7+6+8=26。
21000的各位数字之和是多少?
这个题目,肯定用普通的类型存不下,只有用数组进行存储每一位的数,这个题的做法和13题很像,只是加变为了乘,对于数的存在数组中的形式是一样的;对于可以看作这样就减少了相乘的次数,接下来是代码实现的过程:
#include <stdio.h> int main() { int num[350] = {0}; int a = 8; num[0] = 1; num[1] = 2; for (int i = 0; i < 333; i++) { for (int j = 1; j <= num[0]; j++) num[j] *= a;//和乘法的竖式一样,由于被乘数是个位,所以只需要去乘每一位,再进位就可以了 for (int j = 1; j <= num[0]; j++) {//进位 if (num[j] < 10) continue; num[j + 1] += num[j] / 10; num[j] %= 10; num[0] += (j == num[0]);//如果j都等于这个数的位数,并且发生进位那这个数的位数需要加1 } } int ans = 0; for (int i = 1; i <= num[0]; i++) ans += num[i]; printf("%d\n", ans); return 0; }
最终答案:1366