---------------------------------------重大通知!!!-------------------------------------
众所周知,我们可以使用递归、递推来写“斐波那契数列”类型的问题
当使用递归时,我们需要另外定义一个函数,如“f”“fib”等等,
但你知不知道,有一种递归,叫做“main函数递归!!!!!!!”
(纯属本人异想天开,但真滴好用啊!!!)
下面,见证奇迹时刻:艰苦历程——
一、Q:怎么在递归中使用参数?
A:直接加参数!
二、Q:怎么给参数赋值?
A:因为一开始是一个极大值(垃圾值),所以加一个判断(是否大于100)(100一般在斐波那契中够用了)然后赋一个初始值
三、Q:怎么在main递归中输入n?
A:当某一个参数等于一时,(判断)输入n,然后当形参传,直到递归n次。
四、Q:怎么退出main递归?
A:当一个参数>n时(递归层数)直接退出程序(exit(0))
然后,最激动人心的环节到了!上代码!!
#include<bits/stdc++.h> using namespace std; int main(ll a,ll b,ll c,ll n){ if(n>100) n=1;//赋n初始值 if(c>n) c=1;//赋c初始值 if(c==1) cin>>n;//输入数据 if(a>n&&c==1) a=1;//赋a初始值 if(b>n&&c==1) b=0;//赋b初始值 if(c==n-1) cout<<a+b<<" ";//输出结果 if(c>=n) exit(0);//退出程序 main(b,a+b,c+1,n);//核心部分:设置递归参数(第一项,当前项,递归层数,数据) return 0; }
以上就是“main函数递归‘斐波那契数列版’”,下次再见!
纯属娱乐,不要当真,栈溢出就无了