代码段:
#include<stdio.h>
int Fib1(int n)//递归实现斐波那契数列
{
if (n == 0)
return 0;
else if (n == 1)
return 1;
else
return Fib1(n - 1) + Fib1(n - 2);
}
int Fib2(int n)//非递归实现
{
int num1 = 0;
int num2 = 1;
int tem = 0;
if (n == 0)
{
return 0;
}
else if (n == 1)
{
return 1;
}
else if(n>1)
{
for (int i = 2; i <=n; i++)
{
tem = num1 + num2;
num1 = num2;
num2 = tem;
}
return tem;
}
}
int main()
{
int n = 0, m = 0, k = 0;
printf("\n请输入结束位置:");
scanf_s("%d", &k);
printf("\n");
for ( n = 0; n <= k; n++)
{
m=Fib2(n);
printf("第%i个元素=%d\n", n, m);
}
/*
int n = 0, m = 0, k = 0;
printf("\n请输入结束位置:");
scanf_s("%d", &k);
printf("\n");
for (n = 0; n < k; n++)
{
m = Fib1(n);
printf("第%d个元素=%d\n",n,m);
}
*/
}