斐波那契数列是一组第一位和第二位为1,从第三位开始,后一位是前两位和的一组递增数列,
像这样的:0、1、1、2、3、5、8、13、21、34、55......
这个数列从第3项开始,每一项都等于前两项之和。
通过c语言来实现这个程序
先将代码po上来
#include<stdio.h>
//1 1 2 3 5 8 13 21 34 55 89
int main()
{
//思路:
// 1.定义一个10个元素的数组,全部初始化为0
// 2.将第一个元素和第二个元素都定义成1
// 3.数组中第三个元素等与前两个数的和
int arr[10] = { 0 };
int i = 0;
int input = 0;
arr[0] = 1;
arr[1] = 1;
scanf("%d", &input);
for (i = 2; i < 10; i++)
{
arr[i] = arr[i - 2] + arr[i - 1];
//arr[2]=arr[0]+arr[1] 1+1=2
//arr[3]=arr[1]+arr[2] 1+2=3
}
printf("%d", arr[input - 1]);
return 0;
}
接下来是我拿到这到题的一个思路
这道题有很多思路去解决 函数递归,数组等
我们就拿稍微简单并且容易理解的数组来解答这道代码题
//我们首先定义一个含有十个元素的数组,并且初始化为0;
int arr[10]={0}
//根据题目所给的条件,我们先把数组的第一个和第二个元素定义都分别定义为1
int arr[0]=1;
int arr[1]=1;
这个我就不做解释了,懂得都懂。
接下来进入循环
循环从2开始,到9结束
上述的数字对应的就是数组中元素的下标
for (i = 2; i < 10; i++)
{
arr[i] = arr[i - 2] + arr[i - 1];
//arr[2]=arr[0]+arr[1] 1+1=2
//arr[3]=arr[1]+arr[2] 1+2=3
}
!!!
arr[i]=arr[i-2]+arr[i-1];
这行代码也就是这个算法题的核心思想
最后就是输出啦!
希望自己对这道题的一个认知可以帮到大家!
好好学习编程!
你会学上瘾的!!!