首页 > 代码库 > 高精度,大数的阶乘
高精度,大数的阶乘
求1000!
#include <bits/stdc++.h>using namespace std;#define Maxn 1000int A[Maxn];int main(){ int i,j,n; scanf("%d",&n); memset(A,0,sizeof(A)); A[0] = 1;//第一位要设置为1,否则结果就全是0了 for(int i = 2; i <= n; i++){ int c = 0; for(j = 0; j < Maxn; j++){//模拟计算 int s = A[j]*i + c; A[j] = s % 10; printf("%d\n",s%10); c = s/10; } } //是从后往前计算的,例如115,数组里存的就是511,然后去掉前导0,倒序输出即可 for(j = Maxn -1; j >= 0; j--){//去掉前导0 if( A[j] ){ break; } } for(i = j; i >= 0; i--){ printf("%d",A[i]); } cout << endl; return 0;}
高精度,大数的阶乘
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。