Factorial digit sum
n! means
For example, 10!=10×9×…×3×2×1=3628800, and the sum of the digits in the number 10! is 3+6+2+8+8+0+0=27.
Find the sum of the digits in the number 100!.
阶乘数字和
n!的意思是 n×(n−1)×…×3×2×1。
例如,10!=10×9×…×3×2×1=3628800,所以10!的各位数字和是3+6+2+8+8+0+0=27。
求100!的各位数字和。
这个题目做题方式和16题做题方式一样,那就直接开始实现代码:
#include <stdio.h> int main() { int arr[1000] = {0}; arr[0] = arr[1] = 1; for (int i = 1; i <= 100; i++) { for (int j = 1; j <= arr[0]; j++) arr[j] *= i; for (int j = 1; j <= arr[0]; j++) { if (arr[j] < 10) continue; arr[j + 1] += arr[j] / 10; arr[j] %= 10; arr[0] += (j == arr[0]); } } int ans = 0; for (int i = 1; i <= arr[0]; i++) ans += arr[i]; printf("%d\n", ans); return 0; }
最终答案:648