阶乘
来源:互联网 发布:mac打开xlsx 不能编辑 编辑:程序博客网 时间:2024/05/02 08:00
Description
阶乘(factorial)是基斯顿.卡曼于1808年发明的运算符号,是指指从1乘以2乘以3乘以4一直乘到所要求的数。例如,所要求的数是4,则阶乘式是1×2×3×4,得到的积是24,24就是4的阶乘。 例如所要求的数是6,则阶乘式是1×2×3×……×6,得到的积是720,720就是6的阶乘。例如所要求的数是n,则阶乘式是1×2×3×……×n,设得到的积是x,x就是n的阶乘。
在表达阶乘时,就使用“!”来表示。如h阶乘,就表示为h!
以下列出1至5的阶乘:
1!=1,
2!=2,
3!=6,
4!=24,
5!=120
另外,数学家定义,0!=1,所以0!=1!
通常我们所说的阶乘是定义在自然数范围里的,小数没有阶乘,像0.5!,0.65!,0.777!都是错误的。
现给定正整数n,请你编程求n!。
- Input
单组样例,输入一个正整数n,0≤n≤5000。
- Output
输出n的阶乘n!。
- Sample Input
4
- Sample Output
24
#include<iostream>using namespace std;#define N 175000int a[N]={1,0};int total=0;/*void solve(int n){ int i,c=0; for(i=0;i<total+6;i++) { c=a[i]*n+c; a[i]=c%10; c=c/10; } total=total+8; for(;a[total]==0;total--);}*/int main(){ int n,i,j,c; while(scanf("%d",&n)!=EOF) { memset(a,0,sizeof(a)); a[0]=1; for(i=2;i<=n;i++) { c=0; for(j=0;j<total+6;j++) { c=a[j]*i+c; a[j]=c%10; c=c/10; } total=total+8; for(;a[total]==0;total--); } for(;total>=0;total--) printf("%d",a[total]); printf("\n"); } return 0;}
0 0
- 阶乘
- 阶乘
- 阶乘
- 阶乘
- 阶乘
- 阶乘
- 阶乘
- 阶乘
- 阶乘
- 阶乘
- 阶乘
- 阶乘
- 阶乘
- 阶乘
- 阶乘
- 阶乘
- 阶乘
- 阶乘
- Android popwindow和fragment结合 左侧弹出下拉菜单 切换界面
- 用GDB调试程序(一)
- onSaveInstanceState
- 欢迎使用CSDN-markdown编辑器
- Ubuntu 格式化硬盘
- 阶乘
- 区间信息的维护和查询系列算法-树状数组
- qtcreator项目目录管理
- velocity模板引擎处理
- poj 3073 Spam(注意转义字符‘\’+dp)
- Greenplum闰秒故障的分析解决
- Vim Tutor
- ctags的简单使用
- java导入导出Excel poi跟jxl