0
点赞
收藏
分享

微信扫一扫

计算斐波那契数

是她丫 2022-05-03 阅读 49

目录

递归实现

非递归实现

递归和非递归分别实现求第n个斐波那契数

例如:

输入:5 输出:5

输入:10, 输出:55

输入:2, 输出:1

递归实现

#include<stdio.h>
int fib(int n)
{
	if (n <= 2)
		return 1;
	else
		return fib(n - 1) + fib(n - 2);
}
int main()
{
	int n = 0;
	printf("请输入一个数:");
	scanf("%d", &n);
	int ret = fib(n);
	printf("ret=%d\n", ret);
	return 0;
}

非递归实现

#include<stdio.h>
int fib(int n)
{
	int a = 1;
	int b = 1;
	int c = 1;//当n=1或2时,返回c=1
	while (n >= 3)
	{
		c = a + b;
		a = b;
		b = c;
		n--;
	}
	return c;
}
int main()
{
	int n = 0;
	printf("请输入一个数:");
	scanf("%d", &n);
	int ret = fib(n);
	printf("ret=%d\n", ret);
	return 0;
}

运行结果是:

 

举报

相关推荐

0 条评论