递归和非递归求第n个斐波那契数
作者:互联网
问题描述:
递归和非递归分别实现求第n个斐波那契数。
源代码:
#include <stdio.h>
#pragma warning (disable : 4996)
#include <windows.h>
int fib1(int n)//递归
{
if (n <= 2)
{
return 1;
}
return fib1(n - 1) + fib1(n - 2);
}
int fib2(int n)//迭代,非递归
{
int a = 1;
int b = 1;
int c = 1;
while (n > 2)
{
c = a + b;
a = b;
b = c;
n--;
}
return c;
}
int main()
{
int n = 0;
printf("请输入要查询的数:");
scanf("%d", &n);
int num = fib2(n);
printf("结果是:%d\n",num);
system("pause");
return 0;
}
注:代码中分别用递归和迭代写了两个函数,可以分别调用,都能实现功能,但很显然迭代代码就比较繁琐
运行情况:
标签:契数,递归,int,个斐波,num,printf 来源: https://blog.csdn.net/lexiaoyao_0000/article/details/90239069