斐波那契数,亦称之为斐波那契数列, 又称黄金分割数列、费波那西数列、费波拿契数、费氏数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波那契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*),用文字来说,就是斐波那契数列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加。
递归实现:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h.>
int fib(int n){
if (n <= 2){
return 1;
}
else
return fib(n - 1) + fib(n - 2);
}
int main(){
int num;
printf("请输入一个数:");
scanf("%d", &num);
int q=fib(num);
printf("%d\n", q);
system("pause");
return 0;
}
非递归实现:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int fib(int n){
int next_reuslt;
int pre_result = 1;
int result = 1;
while (n > 2){
n -= 1;
next_reuslt = pre_result;
pre_result = result;
result = next_reuslt + pre_result;
}
return result;
}
int main(){
int f,n=0;
printf("求第几个斐波那契数:");
scanf("%d", &n);
f = fib(n);
printf("%d", f);
system("pause");
return 0;
}