C程序找到给定递推关系的第n项
假设我们有三个数字a、b、c和一个值n。我们遵循一个递归公式S(n)-
S(1)返回一个
S(2)返回b
S(3)返回c
S(n)对于所有n>3,返回S(n-1)+S(n-2)+S(n-3)。
我们必须通过跟随这个循环来找到第n项。
因此,如果输入类似于a=5,b=2,c=3,n=6,那么输出将为28,因为-
S(6)=S(5)+S(4)+S(3)
S(5)=S(4)+S(3)+S(2)
S(4)=S(3)+S(2)+S(1)=3+2+5=10
所以现在S(5)=10+3+2=15
和S(6)=15+10+3=28
示例
让我们看看以下实现以获得更好的理解-
#include <stdio.h>
int solve(int a, int b, int c, int n){
if(n == 1)
return a;
if(n == 2)
return b;
if(n == 3)
return c;
return solve(a, b, c, n-1) + solve(a, b, c, n-2) + solve(a, b, c, n-3);
}
int main(){
int a = 5, b = 2, c = 3, n = 6;
int res = solve(a, b, c, n);
printf("%d", res);
}输入
5, 2, 3, 6输出结果
28
热门推荐
10 过节文案成语祝福语简短
11 钱包祝福语简短10字
12 学生开学季祝福语简短
13 关于好的祝福语简短
14 微信晚上祝福语简短
15 宝宝周岁可乐祝福语简短
16 诗词文案祝福语简短精辟
17 38节贺卡简短祝福语
18 工厂祝福语简短的句子