递归方法:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int fib(int n)
{
if (n <= 2){
return 1;
}
else{
return fib(n - 1) + fib(n - 2);
}
}
int main()
{
int n = 0;
printf("enter a number:");
scanf("%d", &n);
printf("%d\n", fib(n));
system("pause");
return 0;
}
非递归方法:(循环)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n = 0;
printf("enter a number:");
scanf("%d", &n);
int a = 1;
int b = 1;
int c = 1;
if (n <= 2)
printf("1");
for (int i = 0; i < n - 2; i++){
c = a + b;
a = b;
b = c;
}
printf("%d", c);
system("pause");
return 0;
}