【蓝桥杯试题 练习题 李白打酒】

【问题】

李白壶中初始2斗酒,遇花喝1斗,遇店加1倍,几种方案?

【解析】

题目中有十次花,五次店,因为最后一次之后酒为0,故最后一次应该遇到花。

运用递归的思想,每次都具备两种可能性,遇花或者遇店。终止条件:遇到店后,最后一次遇到花时酒还剩一斗。

#include<iostream>

using namespace std;
int res = 0;

void f(int a, int b, int c)
{
    if (a == 0 && b == 1 && c == 1)
    {
        res++;
    }
    if (a > 0)
        f(a - 1, b, c * 2);
    if (b > 0)
        f(a, b - 1, c - 1);

}

int main()
{
    int hua = 10, dian = 5, sum = 2;

    f(dian, hua, sum);
    cout << res;

    return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值