当前位置: 代码迷 >> 综合 >> 欧拉计划20--Factorial digit sum
  详细解决方案

欧拉计划20--Factorial digit sum

热度:23   发布时间:2023-11-25 20:59:03.0

阶乘数字和

n! 的意思是 n × (n ? 1) × … × 3 × 2 × 1

例如,10! = 10 × 9 × … × 3 × 2 × 1 = 3628800,所以10!的各位数字和是 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27。

求出100!的各位数字和。

结果:648

#include<iostream>
#include<string.h>
using namespace std;int main()
{int a[20000];int i=1;int sum=0;memset(a,0,sizeof(a));a[0] = 1;while(i<=100){for(int j=0;j<=1000;j++){a[j]=a[j]*i;}for(int k=0;k<=1000;k++){if(a[k]>9){a[k+1] += a[k]/10;a[k] = a[k]%10;}}i++;}for(int j=0;j<=10000;j++){sum += a[j];}cout<<sum<<endl;return 0;
}