精确算出n的阶乘
来源:互联网 发布:普通话翻译四川话软件 编辑:程序博客网 时间:2024/05/17 07:34
输入不超过1000的正整数n,输出n!=1*2*3.。。。n的精确结果。
样例:30
输出:265252859812191058636308480000000
分析:由于直接算肯定会超出整数的表示范围,所以要利用其存储在字符串中,由于1000!=4*10的2567次方,需要大概最大3000个数组就可以保存。再将数组中的数转存到string中输出。
代码:
#include <iostream>#include <string>#include <stdlib.h>#include <sstream>using namespace std;#define MAXNUM 3000int f[MAXNUM];string fn(int N){memset(f,0,sizeof(f));f[0]=1;for (int i=2;i<=N;i++){int c=0;for (int j=0;j<MAXNUM;j++){int s=f[j]*i+c;f[j]=s%10;c=s/10;}}for (int k=MAXNUM-1;k>=0;k--){if (f[k]){break;}}string ret;for (int m=k;m>=0;m--){string temp;stringstream ss;ss<<f[m];ss>>temp;ret+=temp;}return ret;}int main(){string ret=fn(30);cout<<ret<<endl;return 0;}
- 精确算出n的阶乘
- 算出N的阶乘(N!)一共有多少位
- 求n的阶乘的精确值
- 求n的阶乘的精确值
- 阶乘的精确值
- 阶乘的精确值
- 阶乘的精确值
- 阶乘的精确值!
- 阶乘的精确值
- 阶乘的精确值
- 阶乘的精确值
- 阶乘的精确值
- 阶乘的精确值
- 阶乘的精确值
- 阶乘的精确值
- 阶乘的精确值
- 阶乘的精确值
- 算出n阶乘有多少个尾随零
- 海量数据处理方法总结
- linux系统编码方式设置
- Android在SurfaceView做动画一般方法
- response.setContentType与 request.setCharacterEncoding 区别
- Eclipse中开发Appfuse2.0项目
- 精确算出n的阶乘
- LINUX中a3c2440总线频率、时钟的设置
- NSURLCache 深入研究
- Oracle EBS与第三方应用进行集成(李鸣(aicken)原创 )
- SQL2008无法连接到.\SQLEXPRESS,用户'sa'登录失败(错误18456)图文解决方法
- matlab实现gabor filter (1)
- forms 、elements这是关于form的一个例子
- zoj1076
- java 算法--排序