标签:c++ project euler
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; }
Project Euler:Problem 20 Factorial digit sum
标签:c++ project euler
原文地址:http://blog.csdn.net/youb11/article/details/46288747