斐波拉契数是指一个数组中从第三个起,一个数等于他前两位数的和,由这样的有序数列叫斐波拉契数列。例如 //1 2 3 5 8 13 21 34 55 89 这就是1-10的斐波拉契数。
而在算法中如何求得斐波拉契数需要知道最基本的定义,然后再写算法。
在斐波拉契数中,第一和第二位的元素是固定的,第三位和以后的位数是由前两位相加所得,算法思路是 先判断输入的数是否是1 和2 如果是,直接返回应有的值,在大于三后,则定义三个变量,先将后前两个变量的值赋给地三个变量,作为最后的返回值,然后将前两个变量的值和第三个变量的值进行交换,为下一轮的循环做准备,如果下一轮的 i 值还是大于2,则继续进行循环,知道等于2,完成第n个斐波拉契数的查找。
#include<stdio.h>
int fibe(int num)
{
int sub1 = 1;
int sub2 = 2;
int ant = 0;
int i = 0;
if (num == 1)
return 1;
if (num == 2)
return 2;
if (num>2)
{
for (i = num; i > 2; i--)
{
ant = sub1 + sub2;
sub1 = sub2;
sub2 = ant;
}
}
return ant;
}
int main()
{
int n = 0;
scanf_s("%d", &n);
int tmp = 0;
tmp = fibe(n);//1 2 3 5 8 13 21 34 55 89
printf("%d\n", tmp);