题目内容:
话说大诗人李白,一生好饮。幸好他从不开车。
一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:
无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为1,遇花记为0。则:010110000010000 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。
解题思路:
把所有可能的排序(1、0序列)当做一个二进制的数,把所有数进行一次for循环,若能呗2整数,则为1,否则为0,每次for循环左移一位。
#include <stdio.h>
#include <math.h>
#include <iostream>
using namespace std;
/*李白打酒*/
int main()
{
int a[15];
int x; // 店的个数
int y; // 花的个数
int sum; //酒的斗数
int z = 0; //可能结果的个数
for(int i = 0; i < 16383; i++) //去掉第15次已经确定好的0,前面一共还有14次,即(2^14-1)=16383
{
sum = 2;

这是一道关于李白的数学问题,描述了他在遇到店和花时饮酒的过程。李白从家出发,壶中装有2斗酒,路上遇到店会将酒翻倍,遇到花则喝掉一斗。经过5次遇店和10次遇花后,酒恰好喝完。问题求所有可能的遇店和遇花顺序,并计算这些方案的数量。
最低0.47元/天 解锁文章
2214

被折叠的 条评论
为什么被折叠?



