#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编译器中,代码没有行号,这个鹏哥没有教,所以百度解决
最终,还是装好了,就用它写了这个菲波那契数列的递归写法