一、满足条件的值
1. 审题
已知:S=1+2+4+7+11+16…S=1+2+4+7+11+16…S=1+2+4+7+11+16…
递归求解刚好大于等于 500050005000 时 SSS 的值。
2. 参考答案
#include <iostream>
using namespace std;
// 定义递归函数,计算第x个数的值
int f(int x)
{
int r;
if (x == 1)
r = 1; // 第一个数为 1
else
r = f(x-1) + x-1; // 第 x 个数为第 x-1 个数加上 x-1
return r;
}
int main()
{
int s = 0, i = 1; // 初始化累加和 s 为 0,计数器 i 为 1
while (s <= 5000) // 循环累加直到 s 大于 5000
{
s += f(i++); // 将第 i 个数的值累加到 s 上,并将 i 自增
}
cout << s; // 输出累加和
return 0;
}
二、递归组合数
1. 审题
从 nnn 个物品里面选出 mmm 个物品的方案数,记为 C(n,m)C(n,m)C(n,m)。对于递归过程如下理解:假设 nnn 个物品里面有一个物品最特殊,挑选时 mmm 个物品时,这个特殊物品假定不需要挑选出来,此时要从 nnn 个物品里选出 mmm 个物品,就相当于要从 n−1n-1

最低0.47元/天 解锁文章
2982

被折叠的 条评论
为什么被折叠?



