n! means n × (n − 1) × ... × 3 × 2 × 1
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!
#include <iostream>
#include <string>
using namespace std;
string int_str(int a)
{
string s = "";
while (a != 0)
{
int tp = a % 10;
char p = tp + '0';
s = p + s;
a = a / 10;
}
return s;
}
int main()
{
string s = "1";
for (int i = 2; i <= 100; i++)
{
int len = s.length();
int flag = 0;
for (int j = len - 1; j >= 0; j--)
{
int tp = (s[j] - '0')*i + flag;
s[j] = tp % 10+'0';
flag = tp / 10;
}
if (flag != 0)
s = int_str(flag) + s;
//cout << s << endl;
}
int len = s.length();
int res = 0;
for (int i = 0; i < len; i++)
res += s[i] - '0';
cout << res << endl;
system("pause");
return 0;
}