Project Euler:Problem 20 Factorial digit sum
2015-05-31 15:05
375 查看
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!
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; }
相关文章推荐
- Dijkstra算法java现实
- MVC入门——删除页
- SDN入门实战(二)
- PopuWindow和软键盘共存时的设置
- 三角形已知两边一斜角时求第三边的公式
- id ,NSObject, id<NSObject>区别
- 感悟——毕业一年
- Material新闻项目
- UVa1600做题总结
- 十二周——多态性——有阅读程序(3.2)
- 【操作系统总结】进程通信
- WinsockPragramming(2) Client(C++版)
- JAVA 文档注释,类的说明,HTML说明文档的生成
- [leedcode219]Contains Duplicate II
- 一个女运维学生写给老男孩老师的感谢信!
- 一个女运维学生写给老男孩老师的感谢信!
- 研究android系统架构层次
- 设置MyEclipse的代码自动提示功能
- 11gR2 集群(CRS/GRID)新功能——SCAN(Single Client Access Name)
- 个人认为讲解java异常最好的文章