斐波那契数列的非递归实现方法
目的:给出斐波那契函数的n值得到函数值
定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)。1,1,2,3,5,8,13,21,34,55……
当函数大于等于三项时,第三项等于第一项加第二项,第四项等于3+2,5=4+3…
只需定义一个数组,数组的i项等于i-1与i-2项的和,i>=3,对i实行for循环直到等于n的值就可以求得函数值,除了数组的变量num还需要数组项的变量值i,最后还需要斐波那契数列的变量n。
想要求得某个斐波那契数列函数值大小,需要scanf入n值的大小,即数组的大小,但数组不可变量赋值,这里需要用到malloc函数,malloc声明数组的方法如下:
int n;
scanf("%d", &n);
int *num = (int*)malloc(n * sizeof(int));
完整代码如下:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i, n ;
int *num;
scanf_s("%d", &n);
num = (int*)malloc(n*sizeof(int));
num[1] = 1;
num[2] = 1;
for (i = 3; i <= n; i++)
num[i] = num[i - 1] + num[i - 2];
printf_s("%d", num[n]);
return 0;
}