李白打酒

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了李白打酒相关的知识,希望对你有一定的参考价值。

一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:
无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。求可能的方案总数。

我的方法:
size_t num_solutions = 0;
void keepWalking(size_t num_alcohol, size_t num_flowers, size_t num_shops)
{
    if (num_flowers == 1 && num_shops == 0 && num_alcohol == 1){
        ++num_solutions;
    }
    if (num_flowers != 1){
        keepWalking (num_alcohol - 1, num_flowers - 1, num_shops);
    }
    if (num_shops != 0){
        keepWalking (num_alcohol * 2, num_flowers, num_shops - 1);
    }
}

 

 

以上是关于李白打酒的主要内容,如果未能解决你的问题,请参考以下文章

李白打酒

李白打酒

李白打酒(蓝桥杯2014)

李白打酒

《C#零基础入门之百识百例》(三十七)方法递归 -- 李白打酒

G - 李白打酒加强版(线性DP)