c语言计算大数阶乘 淩亂°似流年 2022-03-18 06:22 328阅读 0赞 问题描述 输入一个正整数*n*,输出*n*!的值。 其中*n*!=1\*2\*3\*…\**n*。 算法描述 *n*!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组*A*来表示一个大整数*a*,*A*\[0\]表示*a*的个位,*A*\[1\]表示*a*的十位,依次类推。 将*a*乘以一个整数*k*变为将数组*A*的每一个元素都乘以*k*,请注意处理相应的进位。 输入格式 输入包含一个正整数*n*,*n*<=1000。 输出格式 输出*n*!的准确值。 样例输入 10 样例输出 3628800 #include <stdio.h> #define N 10000 int main() { int a[N]={1}; int k=0,l=1,n; int i,j; scanf("%d",&n); for(i=1;i<=n;i++) { for(j=0;j<l;j++) { a[j]=a[j]*i+k; k=a[j]/10000; a[j]=a[j]%10000; } if(k) { a[j]=k; l++; k=0; } } printf("%d",a[l-1]); for(i=l-2;i>=0;i--) printf("%04d",a[i]); printf("\n"); return 0; }
相关 C++实现大数阶乘 在C++中,long long类型虽然可以表示一个很大的数,但是对于大数阶乘来说是远远不够的,因为大数阶乘的结果位数很多,所以我们可以定义一个大容量数组来存放这个结果的每 素颜马尾好姑娘i/ 2023年10月05日 13:38/ 0 赞/ 56 阅读
相关 计算n的阶乘(大数) import java.util.Scanner; public class Main { public static void 喜欢ヅ旅行/ 2023年07月15日 13:22/ 0 赞/ 32 阅读
相关 大数阶乘 问题描述: 输入不超过1000的正整数,输出它的 阶乘的精确结果。 解题思路: 用数组分别记录阶乘结果么每位数字。 include<stdio.h> 川长思鸟来/ 2022年08月08日 13:59/ 0 赞/ 45 阅读
相关 大数阶乘 描述 我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它? 输入 输入一个整数m(0<m<=5000) 输出 输出m的阶乘, 男娘i/ 2022年08月02日 01:27/ 0 赞/ 452 阅读
相关 大数阶乘 大数阶乘 时间限制: 3000 ms | 内存限制: 65535 KB 难度: 3 描述 我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计 - 日理万妓/ 2022年07月12日 15:48/ 0 赞/ 271 阅读
相关 大数阶乘 import java.math.BigInteger; import java.util.Scanner; public class Big 一时失言乱红尘/ 2022年06月06日 11:29/ 0 赞/ 271 阅读
相关 大数阶乘 用data数组来存放阶乘的每一位数字,首先令第一位的数值为1,位数为1,然后将每次相乘的乘积存回数组,并循环处理每个数组中超过10的数,若数值超过10,则需要进位,将位数加1 电玩女神/ 2022年06月01日 08:00/ 0 赞/ 289 阅读
相关 大数阶乘 求大数阶乘前要计算下最大数阶乘的位数 以便于知道需要开多大的数组 . 第一种求法 : lg(N!)=\[lg(N\(N-1)\(N-2)\......\3\2\1 我就是我/ 2022年05月27日 06:47/ 0 赞/ 256 阅读
相关 c语言计算大数阶乘 问题描述 输入一个正整数n,输出n!的值。 其中n!=1\2\3\…\n。 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法 淩亂°似流年/ 2022年03月18日 06:22/ 0 赞/ 329 阅读
还没有评论,来说两句吧...