求阶乘求1!+2!+…+20!,其中x!=1*2*…*x,表示阶乘

求1!+2!+…+20!,其中x!=1*2*…*x,表示阶乘

 (way1:循环)

#include<stdio.h>
#include<math.h>
int main() 
{
int n,i;
long long int sum=0,t=1;
for(i=1;i<=n;i++)
{
scanf("%d",&n);
t=t*i;
sum+=t;
}
printf("%lld",sum);
return 0; 
}

(way2:函数)

#include<stdio.h>
long long int fac(int n)
{
long long t=1;
int i;
for(i=1;i<=n;i++)
t=t*i;
return t;
}
int main()
{
long long int s=0;
int i;
for(i=1;i<=10;i++)
s+=fac(i);
printf("%lld",s);
return 0;
}
#include "stdio.h"
int fac(int a) 
{
	if(a==1)
		return 1;
	else
		return fac(a-1)*a;
}
int main() 
{
	int i,sum=0;
	for(i=1; i<11; i++)
		sum=sum+fac(i);
	printf("%d\n",sum);
}

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 阶乘的计算公式为:x!=1*2*…*x。 1! = 1,2! = 2*1 = 2,3! = 3*2*1 = 6,4! = 4*3*2*1 = 24,以此类推。 要1!+2!+…+20!,可以使用循环来计算每个阶乘的值,并将它们累加起来。 具体实现如下: int sum = 0; int factorial = 1; for (int i = 1; i <= 20; i++) { factorial *= i; sum += factorial; } printf("1!+2!+...+20! = %d\n", sum); 最终输出结果为:1!+2!+…+20! = 2561327494111820313。 ### 回答2: 阶乘是一个基本的数学概念,它在组合数学、离散数学以及计算机科学中都有广泛的应用。阶乘指的是从1到一个给定的正整数n所有整数的乘积,其中n!=1×2×3×……×(n-1)×n。 1!时,直接计算1!=1×1=1,结果是1。 2!时,直接计算2!=1×2=2,结果是2。 3!时,直接计算3!=1×2×3=6,结果是6。 以此类推,20!时,可以选择使用计算机来解,也可以通过手动计算来完成。 手动计算20!时,需要先计算出1!、2!、3!……19!这些数的值,然后再通过乘法来计算20!的值。由于计算20!的值非常大,常规的计算方法很难支持这么大的数值,因此需要采用高精度计算的方案。 当然,在实际的计算过程中,可以使用程序来实现高精度计算,这样可以大大提高计算的效率和准确性。同时,也可以采用递归的方式来计算阶乘,递归的基本思路是将阶乘的计算问题逐步转化为更小的阶乘计算问题,直到最小的问题解决,最终再将所有的阶乘计算结果进行乘积运算,得出最终的阶乘值。 总的来说,阶乘是一个非常有趣且有用的数学概念,一些数学学科、计算机科学、统计学等都会涉及到阶乘相关的问题。无论是手动计算还是采用计算机计算,我们都可以通过阶乘这个问题来锻炼自己的计算能力和程序设计能力,提高自己的数学素养和解决问题的能力。 ### 回答3: 求阶乘是一道经典的数学问题,阶乘指从1开始连乘到某个正整数的结果。要1!到20!的值,我们可以采用递推的方式来解决。 1! = 1(定义) 2! = 1 * 2 = 2(递推) 3! = 2 * 3 = 6(递推) 4! = 6 * 4 = 24(递推) 5! = 24 *5 = 120(递推) 依次类推,可以得到6!到20!的值,具体如下: 6! = 120 * 6 = 720 7! = 720 * 7 = 5040 8! = 5040 * 8 = 40320 9! = 40320 * 9 = 362880 10! = 362880 * 10 = 3628800 11! = 3628800 * 11 = 39916800 12! = 39916800 * 12 = 479001600 13! = 479001600 * 13 = 6227020800 14! = 6227020800 * 14 = 87178291200 15! = 87178291200 * 15 = 1307674368000 16! = 1307674368000 * 16 = 20922789888000 17! = 20922789888000 * 17 = 355687428096000 18! = 355687428096000 * 18 = 6402373705728000 19! = 6402373705728000 * 19 = 121645100408832000 20! = 121645100408832000 * 20 = 2432902008176640000 因此,1!到20!的值分别为1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368000,20922789888000,355687428096000,6402373705728000,121645100408832000和2432902008176640000。其中20!的值比较大,达到了18位数级别,需要用高精度计算才能计算得出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值