首页 > 代码库 > 51NOD 1057 N的阶乘
51NOD 1057 N的阶乘
1057 N的阶乘
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题
输入N求N的阶乘的准确值。
Input
输入N(1 <= N <= 10000)
Output
输出N的阶乘
Input示例
5
Output示例
120
#include <bits/stdc++.h>#define clear(a) memset(a,0,sizeof(a))using namespace std;typedef long long ll;const int mod = 1e8;ll s[10010];int main (){ int n; while (~scanf("%d",&n) ) { clear(s); int m =0; s[0] = 1; for(int i=1;i <= n;i++) { int c = 0;//c表示最高位所留下的 相当于模拟乘法把 for(int j=0;j <= m;j++) { s[j] = s[j]*i + c; c = s[j] /mod; s[j] %= mod; } if(c > 0) { m++; s[m] = c; } } printf("%lld",s[m]); for(int i=m-1;i >= 0;i--) printf("%08lld",s[i]); puts(""); } return 0;}
51NOD 1057 N的阶乘
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。