基本数列的分类
等差数列
a i = a_i= ai= { a 0 , i = 0 a i − 1 + d , i > 0 \begin{cases}a_0,i = 0\\ a_{i-1}+d,i > 0 \end{cases} {a0,i=0ai−1+d,i>0
等比数列
a i = a_i= ai= { a 0 , i = 0 a i − 1 × q , i > 0 \begin{cases}a_0,i = 0\\a_{i-1}\times q,i > 0 \end{cases} {a0,i=0ai−1×q,i>0
斐波那契数列
f ( n ) = f(n)= f(n)= { 0 , n = 0 1 , n = 1 f ( n − 1 ) + f ( n − 2 ) , n > 2 \begin{cases}0,n = 0\\1,n = 1\\f(n - 1) + f(n - 2),n > 2\end{cases} ⎩⎪⎨⎪⎧0,n=01,n=1f(n−1)+f(n−2),n>2
题目描述
给定n(0 ≤ ≤ ≤ n ≤ ≤ ≤ 30),请计算 f ( n ) f(n) f(n),即第n项的值
解题思路
由于从第三项开始,每一项都是和他相邻的前两项的和,那么我们可以直接按照这个规律来写出代码。
解题代码
#include <stdio.h>
int main()
{
int fib[100];
int n;
fib[0] = 0;
fib[1] = 1;
scanf("%d",&n);
for(int i = 2; i <= n; ++i)
{
fib[i] = fib[i - 1] + fib[i - 2];
}
printf("%d\n",fib[n - 1]);
return 0;
}
最后输出fib[n - 1]是因为我们是从第0项开始计算的,所以第n项其实相当于是斐波那契数列中的下标为n - 1的元素的值。
写在最后
该文章内容是我阅读了CSDN博主英雄哪里出来
的博文后,自己记录的一些观点和想法,希望对大家有帮助。英雄哪里出来
的对应博文地址:传送门