C刷题记录-1014

题目描述

求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)。

输入

n

输出

Sn的值

样例输入
5
样例输出
153

 1 #include <stdio.h>
 2 
 3 unsigned long long int get_factorial (int n);
 4 
 5 int main(){
 6 
 7   int n,i;
 8   unsigned long long int SN = 0;
 9   scanf("%d",&n);
10 
11   for(i=1;i<=n;i++)
12   {
13     SN = SN + get_factorial(i);
14   }
15   printf("%lld",SN);
16   return 0;
17 }
18 
19 /*
20 需要注意数据长度,如果n很小的时候,结果是正确的,
21 但是n=20的时候,超出int的范围,所以定义成unsigned long long int
22 */
23 unsigned long  long int get_factorial (int n)
24 {
25     unsigned long long int factorial;
26     if (n==1)
27     {
28       factorial = 1;
29     }
30     else if (n>=2)
31     {
32      factorial = (unsigned long long int)n * get_factorial(n-1);
33     }
34 
35     return factorial;
36 }

 

转载于:https://www.cnblogs.com/xiangxyq/p/7802607.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值