资讯专栏INFORMATION COLUMN

PHP版本李白打酒算法

stormzhang / 1317人阅读

摘要:话说大诗人李白,一生好饮。一天,他提着酒壶,从家里出来,酒壶中有酒斗。他边走边唱无事街上走,提壶去打酒。这一路上,他一共遇到店次,遇到花次,已知最后一次遇到的是花,他正好把酒喝光了。请你计算李白遇到店和花的次序,可以把遇店记为,遇花记为。

话说大诗人李白,一生好饮。幸好他从不开车。 一天,
他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:
无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。

这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。

PHP代码实现:

$count = 0;
    $a = array();

    function show($a, $num)
    {
        $i = 0;
        while ($i < $num) echo $a[$i++];
        echo "
"; } function forward_recursion($i, $store, $flower, $wine) { if($store > 5 || $flower > 10){ return; } else if($store == 5 && $flower == 10 && $i == 15){ if ($GLOBALS["a"][14] == "b" && $wine == 0){ $GLOBALS["count"]++; show($GLOBALS["a"], 15); } return; } $GLOBALS["a"][$i] = "a"; forward_recursion($i + 1, $store + 1, $flower, $wine * 2); //逢店加一倍 $GLOBALS["a"][$i] = "b"; forward_recursion($i + 1, $store, $flower + 1, $wine - 1); //遇花喝一斗 } forward_recursion(0,0,0,2); echo $count;

运行结果:

ababbbbbabababb
abbabbabbbababb
abbabbbaabbbabb
abbabbbabaabbbb
abbbaabbabbbabb
abbbaabbbaabbbb
abbbabaabbabbbb
baababbbbbababb
baabbabbabbbabb
baabbabbbaabbbb
baabbbaabbabbbb
babaababbbbbabb
babaabbabbabbbb
bababaababbbbbb
14

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22631.html

相关文章

  • mongoDb的简单使用

    摘要:总结说明非数据库的用户不能使用数据库命令,比如等。数据库中的用户被视为超级用户即管理员。 MongoDB MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的,语法有点类似javascript面向对象的查询语言,它是一个面向集合的,模式自由的文档型数据库。 mongodb与 mysql性能比较 showImg(https://seg...

    Java_oldboy 评论0 收藏0
  • 当你和天猫精灵对话时,它在想什么?阿里智能对话技术深度解读

    摘要:目前资讯播报时区限行历史上的今天单位换算油价日历等技能天猫精灵上线技能触发率,准确率即对话管理,是对话系统的关键部分,负责维护对话上下文,管理对话流程,保持对话过程的流畅。 术语对齐 TaskBot引擎: 核心处理对象是技能,我们把技能定义成结构化(query+content)、垂直场景化的任务,比如实时场景查询、工具类、控制类等QABot引擎: 包括KG-QA引擎、QAPair引擎、...

    时飞 评论0 收藏0
  • 当你和天猫精灵对话时,它在想什么?阿里智能对话技术深度解读

    摘要:目前资讯播报时区限行历史上的今天单位换算油价日历等技能天猫精灵上线技能触发率,准确率即对话管理,是对话系统的关键部分,负责维护对话上下文,管理对话流程,保持对话过程的流畅。 术语对齐 TaskBot引擎: 核心处理对象是技能,我们把技能定义成结构化(query+content)、垂直场景化的任务,比如实时场景查询、工具类、控制类等QABot引擎: 包括KG-QA引擎、QAPair引擎、...

    孙淑建 评论0 收藏0
  • 学习Python的建议

    摘要:如果初学者接触的第一门语言是,学习曲线则会平滑得多,掌握一些基本语法和内置的数据结构,已经可以上手写一些小工具或者小型应用。如果你的学习时间充足,我的建议是一定要学数据结构和算法。 前言 Python是最容易入门的编程语言,没有之一。如果初学者接触的第一门语言是C或者C++,对他们来说最难的不是语法,而是容易出现内存泄漏、指针等问题。有时候排查这些问题对初学者的打击很大,尤其是没掌握排...

    eechen 评论0 收藏0

发表评论

0条评论

stormzhang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<