NYOJ-28 大数阶乘
来源:互联网 发布:淘宝摄影师兼职 编辑:程序博客网 时间:2024/06/03 20:14
思路:利用数组的方法、取余和进位的思想
比如5! = 1*2*3*4*5 = 120
数组 1 0 0 0 0
i = 1 - > 1 000
i = 2 -> 2 000
i = 3 -> 6 000
i = 4 -> 4 2 00
i = 5 -> 0 2 1 0 (这时就需要进位了,输出的时候也要去除前面的多余0)
代码如下:
#include<cstdio>const int MAX = 20000;int S[MAX];int main() { int N, flag, s, len; scanf("%d", &N); S[0] = 1; for (int i = 2; i <= N; i++) { flag = 0; for (int j = 0; j < MAX; j++) { s = S[j] * i + flag; //是否进位的标志 S[j] = s % 10; flag = s / 10; } } for (len = MAX - 1; len >= 0; len--) if (S[len]) break; for (int j = len;j >= 0; j--) printf("%d", S[j]); puts(""); return 0;}
运行结果
2015年9月13日23:50:51
0 0
- NYOJ-28:大数阶乘
- NYOJ 28 大数阶乘
- NYOJ-大数阶乘-28
- NYOJ 28-大数阶乘
- NYOJ---大数阶乘---28
- NYOJ,28,大数阶乘
- nyoj 28 大数阶乘
- nyoj-28-大数阶乘
- nyoj 28 大数阶乘
- 大数阶乘(nyoj 28)
- NYOJ 28 大数阶乘
- nyoj 28 大数阶乘
- NYOJ 28 大数阶乘
- NYOJ 28 大数阶乘
- NYoj 28 大数阶乘
- nyoj 大数阶乘 28
- NYOJ-28 大数阶乘
- NYOJ 28 大数阶乘
- 产品级敏捷案例: 企业云存储
- ubuntu 各个目录含义
- Unity3D笔记第十二天——鼠标事件、物理类、射线
- 自定义下拉选择框
- javascript数组操作
- NYOJ-28 大数阶乘
- iOS开发-常用第三方开源框架介绍
- 批处理系统、分时处理系统、实时处理系统简介
- Android Studio 插件--Parcelable code generator
- 小白初学C++ PRIMER 第五版 第三章
- 通用字符串处理方法
- 排序算法之冒泡算法
- CMake使用说明
- wget参数说明和用法举例