博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阶乘的精确性
阅读量:5856 次
发布时间:2019-06-19

本文共 597 字,大约阅读时间需要 1 分钟。

/*

输入不超过1000的正整数n,输出n!=1*2*3*……*n的精确结果。
样例输入:30
样例输出:265252859812191058636308480000000
例如 n=3;s=6;
n=4;s=24;
n=5;s=120;
1000的阶乘需要一个3000位的数组来存
*/
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;

const int maxn=3003;//数组长度

int f[maxn];
int main()
{
int i,j,n,c,k;

while(cin>>n)

{
memset(f,0,sizeof(f));//清空数组
f[0]=1;

for(i=2;i<=n;i++)

{
c=0;
for(j=0;j<maxn;j++)
{
k=f[j]*i+c;
f[j]=k%10;
c=k/10;
}
}
for(j=maxn-1;j>=0;j--)
if(f[j]!=0)//利用0 1 来判断;
break;
for(i=j;i>=0;i--)
printf("%d",f[i]);
printf("\n");
}
return 0;
}

 

转载于:https://www.cnblogs.com/mcgrady_ww/p/6389519.html

你可能感兴趣的文章
经典c程序100 例
查看>>
页面中富文本的使用
查看>>
etymology-F
查看>>
FastD 最佳实践一: 构建 API
查看>>
Mycat安装以及使用测试
查看>>
JS里验证信息
查看>>
Microsoft Quantum Katas帮助开发人员探索使用Q#实现量子计算
查看>>
Akka actor tell, ask 函数的实现
查看>>
windows10 chrome 调试 ios safari 方法
查看>>
Hello , Ruby!
查看>>
Netty 4.1.35.Final 发布,经典开源 Java 网络服务框架
查看>>
详解Microsoft.AspNetCore.CookiePolicy
查看>>
go与c互相调用
查看>>
如何优雅地用Redis实现分布式锁
查看>>
从零开始Docker化你的Node.js应用
查看>>
SCDPM2012 R2实战一:基于SQL 2008 R2集群的SCDPM2012 R2的安装
查看>>
SQL SERVER中字段类型与C#数据类型的对应关系
查看>>
2017年6月8日 笔记
查看>>
保存对象、关系映射
查看>>
Java堆和栈的区别
查看>>