三种递归方式 1.深搜没有回溯2.基本递归 3.尾递归
#include<cstdio>
#include<iostream>
using namespace std;
int number=2;
int f1(int time)
{
if(time==10)
return number;
else
{
number=number*2-1;
f(time+1);
}
}
int main()
{
f(0);
cout<<number<<endl;
}
int f2(int n)
{
if(n==0)//基本递归的形式
return 2;
else
return 2*f2(n-1)-1;
}
int main()
{
cout<<f2(10)<<endl;
}
int f(int n,int num)//尾递归
{
if(n==0)
return num;
else
return f(n-1,num*2-1);
}
int main()
{
cout<<f(10,2)<<endl;
}
切面条
一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。
那么,连续对折10次,中间切一刀,会得到多少面条呢?