菲波那契数列的递归写法

#define _CRT_SECURE_NO_WARNINGS 1
//菲波那契数列的递归写法
#include<stdio.h>
int Fib(int n)
{
	//int n = 0;
	if (n <= 2)
	{
		return 1;
	}	
	else
	{
		return Fib(n - 1) + Fib(n - 2);
	}
}
int main()
{
	int n = 0;
	int ret = 0;
	printf("请输入n的值:\n");
	scanf("%d", &n);
	ret = Fib(n);
	printf("%d", n);
	printf("的那波数列为:\n%d\n", ret);
	return 0;
}
//这种写法数值稍大,就会溢出,而且效率超级底

高效的写法,如下:

 

#include<stdio.h>
int Fib(int n)
{
	long int a = 1;
	long int b = 1;
	long int c = 1;
	while (n > 2)
	{
		c = a + b;
		a = b;
		b = c;
		n--;
	}
		return c;

} 
int main()
{
	int n = 0;
	long int ret = 0;
	printf("请输入n的值:\n");
	scanf("%d", &n);
	ret = Fib(n);
	printf("%d", n);
	printf("的那波数列为:\n%d\n", ret);
	return 0;

运行结果,如下:

 

 心得:花了一天的时间,终于在我的win11上,下载并安装好了Visual Studio 2015,安装过程中报了两次错误,直接让我跳过了,后期C的编程使用中没有任何影响,然后就是配制,也很麻烦,

1,子系统中要改成控制台,否则printf的打印出来的结果只能一闪而过

2,要在newc++file.cpp文件中加入:#define _CRT_SECURE_NO_WARNINGS 1这个语句,以路过vc的警告,我的目录中并没有newc++file.cpp这个文件,我就新建了一个,还需要Notepad++这个软件,才能修改,这个需要重下

3,最可恨的是我的VC编译器中,代码没有行号,这个鹏哥没有教,所以百度解决

最终,还是装好了,就用它写了这个菲波那契数列的递归写法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值