逆天递推(C++)

本文介绍了如何使用main函数进行递归计算斐波那契数列,涉及参数传递、初始值设定、输入和退出条件。作者强调这是一种娱乐性质的方法,可能会导致栈溢出问题。
摘要由CSDN通过智能技术生成

---------------------------------------重大通知!!!-------------------------------------

众所周知,我们可以使用递归、递推来写“斐波那契数列”类型的问题

当使用递归时,我们需要另外定义一个函数,如“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函数递归‘斐波那契数列版’”,下次再见!

纯属娱乐,不要当真,栈溢出就无了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值