答案来源于蓝桥杯老师
李白打酒问题:
共有五个店,共遇10次话,遇店加一倍,遇花喝一斗,
最后一次遇到的是花正好喝完。
初始有两斗,问李白遇到花和店的先后顺序一共有多少种;
利用深搜去递归
代码如下
#include <iostream>
using namespace std;
int count=0;
void f(int hotel,int flower,int liquor ) //liquor 酒
{
if(hotel==0&&flower==0&&liquor==1)
count++;
if(hotel>0) f(hotel-1,flower,liquor*2);
if(flower>0) f(hotel,flower-1,liquor-1);
}
int main()
{
f(5,9,2);
cout<<count;
return 0;
}
结果为 14