递归方法:
#include<stdio.h>
#include<stdlib.h>
int Fibonacci_sequence(int n)
{
if (n == 1 || n == 2) // 递归结束的条件,求前两项
return 1;
else
{
return Fibonacci_sequence(n - 1) + Fibonacci_sequence(n - 2); // 如果是求其它项,先要求出它前面两项,然后做和。
}
}
int main()
{
int i = 0;
int n = 8;
printf("Please enter a number:");
scanf("%d", &n);
i=Fibonacci_sequence(n);
printf("The number is %d\n", i);
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
void Fei(int n) // 非递归
{
int sum = 1;
int sum1 = 1;
int i = 0;
int tem = 0;
if (n < 1)
{
printf("输入数字有误\n");
}
else if (1 == n)
{
printf("第n个斐波那契数是:%d\n", sum);
}
else if(2 == n)
{
printf("第n个斐波那契数是:%d\n", sum);
}
else
{
for (i = 0; i < n - 2; i++) // 第三项等于前两相加
{
tem = sum; // tem 保存原来的sum
sum += sum1; // sum= 前两项相加
sum1 = tem; // sum1 =原来的sum 始终保证第三项等于前两项相加
}
printf("第n个斐波那契数是:%d\n", sum);
}
}
int main()
{
int n = 0;
printf("Please enter a number :");
scanf("%d",&n);
Fei(n);
system("pause");
return 0;
}