oj 1608: 1!到n!的和(递归)

本文介绍了一个使用递归方法解决数学问题的具体案例——计算1!+2!+...+n!的和。通过两个递归函数实现,一个用于计算阶乘,另一个用于累加阶乘结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:

Description

求1!+2!+3!+4!+...+n!的结果。

Input

输入数据含有不多于50个的正整数n(1≤n≤12)。

Output

对于每个n,输出计算结果。每个计算结果应占独立一行。

Sample Input

3 6

Sample Output

9
873

HINT

Source

代码:
#include <stdio.h>
#include <stdlib.h>

int f(int n)
{
    if(n==1)
        return 1;
    else if(n==2)
        return 2;
    else
        return n*f(n-1);
}
int sum_f(int n)
{
    if(n==1)
        return 1;
    else if(n==2)
        return 3;
    else
        return f(n)+sum_f(n-1);
}
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        printf("%d\n",sum_f(n));
    }
    return 0;
}

小结:原来用过非递归的方法,今天看到这个题,直接把思路引到递归上去了......但我没想到用了两个递归,这两个递归的方法是参考csdn上的大神...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值