大数的阶乘输入不超过1000的正整数n,输出n!=1×2×3×…×n的精确结果.样例输入:30样例输出:26525285
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/25 19:24:46
大数的阶乘
输入不超过1000的正整数n,输出n!=1×2×3×…×n的精确结果.
样例输入:30
样例输出:265252859812191058636308480000000
【分析】
为了保存结果,先分析1000!大约等于4×102567,因此可以用一个3000个元素的数组f保存.让f[0]保存结果的个位,f[1]是十位,f[2]是百位,…,则每次只需要模似手算即可完成n!.在输出时需要忽略前导0.注意,如果结果本身就是0,那么忽略所有前导0后将什么都不输出.所幸n!肯定不等于0,因本题可以忽略这个细节.
完整的程序如下:
#include
#include
const int maxn = 3000;
int f[maxn];
int main() {
int i,j,n;
scanf("%d",&n);
memset(f,0,sizeof(f));
f[0] = 1;
for(i = 2; i = 0; j--) if(f[j]) break; /* 忽略前导0 */
for(i = j; i >= 0; i--) printf("%d",f[i]);
printf("\n");
return 0;
for(i = 2; i
输入不超过1000的正整数n,输出n!=1×2×3×…×n的精确结果.
样例输入:30
样例输出:265252859812191058636308480000000
【分析】
为了保存结果,先分析1000!大约等于4×102567,因此可以用一个3000个元素的数组f保存.让f[0]保存结果的个位,f[1]是十位,f[2]是百位,…,则每次只需要模似手算即可完成n!.在输出时需要忽略前导0.注意,如果结果本身就是0,那么忽略所有前导0后将什么都不输出.所幸n!肯定不等于0,因本题可以忽略这个细节.
完整的程序如下:
#include
#include
const int maxn = 3000;
int f[maxn];
int main() {
int i,j,n;
scanf("%d",&n);
memset(f,0,sizeof(f));
f[0] = 1;
for(i = 2; i = 0; j--) if(f[j]) break; /* 忽略前导0 */
for(i = j; i >= 0; i--) printf("%d",f[i]);
printf("\n");
return 0;
for(i = 2; i
这段代码:
for(i = 2; i
for(i = 2; i
大数的阶乘输入不超过1000的正整数n,输出n!=1×2×3×…×n的精确结果.样例输入:30样例输出:26525285
输入一个正整数,输出该数的阶乘.求整数n的阶乘公式为:=1*2*…*n.(n!表示n的阶乘)
C语言.输入一个正整数n,求s=1+2+3+.n的和.如输入50输出1275输入1000输出500500
用Java编程 :输入一个正整数n,输出n!的值.其中n!=1*2*3*…*n.
输入一个正整数n,计算1+1/2!+1/3!……1/n!的和并输出.要求将计算阶乘的运算定义
设计一个窗体,要求输入一个正整数N,计算并输出N的阶乘.VB的
编写程序,输入正整数N,计算它的阶乘N!(N!=N*(N-1)*…*3*2*1)
编写程序,输入正整数n,计算它的阶乘n!(n!=n×(n-1)×…×3×2×1).
题目是这个:输入正整数n,在主函数中输出1!+2!+3!+...的值,要求将计算阶乘的运算写成函数JC(n).
利用VB设计一个程序:输入一个大于10的正整数n,计算sum=1+3+5+…(2n+1),编写程序输出计算结果sum
编写程序,输入正整数n,计数它的阶乘n!(n!=n×(n-1)×.×3×2×1).
编写一个C#控制台应用程序,对于输入的正整数n,计算1!+2!+3!+…+n!的值并输出结果!要求完整的哈!