首页 文章资讯内容详情

C程序找到给定递推关系的第n项

2026-06-02 1 花语

假设我们有三个数字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