设有一个数列,它的前四项为0,0,2,5,以后每项分别是其前四项之和,编程求此数列的前20项 C语言
#include <stdio.h>
int main()
{
int a = 0, b = 0, c = 2, d = 5;
int t, sum = 7;
int i = 5;
for (; i <= 20; i++)
{
t = a + b + c + d;
a = b;
b = c;
c = d;
d = t;
sum += t;
}
printf("%d", sum);
return 0;
}
通过递归:
#include<stdio.h>
int f(int n)
{
if(n == 1 || n == 2) return 0;
else if (n == 3) return 2;
else if (n == 4) return 5;
else return f(n - 1) + f(n - 2) + f(n - 3) + f(n - 4);
}
int main()
{
int N = 20;
int sum = 0;
int i;
for(i = 0; i < N; i++)
{
sum += f(i + 1);
}
printf("sum=%d\n", sum);
return 0;
}
你的这个问题类似于斐波那契数列,可以用动态规划来做~
可以参考leetcode的题解https://leetcode-cn.com/problems/fibonacci-number/solution/fei-bo-na-qi-shu-by-leetcode-solution-o4ze/
希望你可以通过这个学到知识~而不是直接copy
如有帮助请采纳回答~