首页 > 其他分享 >李白喝酒问题

李白喝酒问题

时间:2023-04-25 22:44:54浏览次数:43  
标签:alco return 喝酒 int 问题 李白 遇见 fun store

一、问题提出。

“李白街上走,提壶去买酒,遇店加一倍,见花喝一斗”,
途中,遇见5次店,见了10此花,壶中原有2斗酒,最后刚好喝
完酒,要求最后遇见的是花,求可能的情况有多少种?

二、设计思路。

分析:题目要求最后是遇见花也就是说最后是喝酒(最好刚好把酒完),出去这种确定的情况,最后剩下的情况是:还有一斗酒,前面遇到了5次店和九次花(打了5次酒,喝了九次酒)。
然后每次情况只有两种分别是遇见花喝酒和遇到店打酒。
遇到店的时候打酒(s*2),然后酒的斗数会翻倍;遇到花时喝酒,然后酒的斗数减一(s-1);
然后设置递归的出口:
当酒喝完还遇见花时,则return 0;以为酒不能是负的;
当5个店已经都遇见过时,则return 0;
当9个花已经都遇见过时,则return 0;
当花刚好遇见完,店刚好遇见完,酒还有一斗时:return 1;
当中间过程,酒喝完了,但是遇见店了,又因为此时s=0,遇到店的时候打酒(s*2),所以要把s设置成0.5;

 

代码实现。

#include <stdio.h>
int count = 0;
void fun(int store, int flower, int alco)
{
    if (5 < store || 10 < flower)       
    {
        return ;
    }
    if (5 == store && 9 == flower)
    {
        if (1 == alco)
        {
            count++;
        }
        return ;
    }
    fun(store + 1, flower, alco * 2);
    fun(store, flower + 1, alco - 1);   
}

int main()
{
    fun(0, 0, 2);           //初始情况:酒为2,其余为0

    printf ("共有 %d 种可能\n", count);

    return 0;
}

 

标签:alco,return,喝酒,int,问题,李白,遇见,fun,store
From: https://www.cnblogs.com/luoqingci/p/17354184.html

相关文章

  • tracecompass+lttng 分析系统性能问题
    主要是一个测试学习,对于基于babeltrace的我以前写过简单的使用,以下主要是基于tracecompass进行可视化分析安装lttng可以直接使用centos系统自带的,但是推荐使用EfficiOS源wget-P/etc/yum.repos.d/https://packages.efficios.com/repo.files/EfficiOS-RHEL7-x86-......
  • 三色球问题
    一、问题描述一个口袋放有12个球,已知其中三个是红的,3个是白的,6个是黑的,先从中任取8个,问共有几种可能的颜色搭配。二、设计思路1、定义红球m白球n黑球为8-m-n,其中0<=m<=3,0<=n<=3,8-m-n<=6,定义number=0。2、红白黑三球数量范围已经确定,现在将m和n进行循环检测范围内的所有可能......
  • Java 编程问题:三、使用日期和时间
    本章包括20个涉及日期和时间的问题。这些问题通过Date、Calendar、LocalDate、LocalTime、LocalDateTime、ZoneDateTime、OffsetDateTime、OffsetTime、Instant等涵盖了广泛的主题(转换、格式化、加减、定义时段/持续时间、计算等)。到本章结束时,您将在确定日期和时间方面没有问题,......
  • 常见引起性能的问题
    数据库端性能非常低   优化数据库服务器端的配置参数   应用服务器端数据连接池的配置参数修改   应用服务器端的sql审核,建立更好的索引以及修改不好的sql语句:关联表过多,查询的数据量过大,表设计不合理等   应用服务器端拆解过大的表,分为多张表,甚至把一个数据库......
  • 八数码问题(蒟蒻打卡)
    原题:AcWing845.八数码-AcWing思路:用string储存状态bfs爆搜1#include<bits/stdc++.h>2usingnamespacestd;3intbfs(stringstart)4{5intdx[4]={-1,0,1,0},dy[4]={0,-1,0,1};6stringend="12345678x";7queue<string>q;8......
  • 第十一天第二个问题
    问题描述:以点类Point及平面图形类Plane为基类公有派生圆类Circle,main(void)函数完成对其的测试。Point类结构说明:Point类的数据成员包括:①私有数据成员:X坐标x(double型),Y坐标y(double型)。Point类成员函数包括:①有参构造函数Point(double,double)和拷贝构造函数Point(const......
  • 第十一天第一个问题
    问题描述:编写模板函数max5(),他将由一个T类型元素组成的数组作为参数,并返回数组中最大的元素(由于长度固定,因此可以在循环中使用硬编码,而不必通过参数来传递)。在一个程序中使用该函数,将T替换为一个包含5个int值的数组和一个包含5个double值的数组,以测试该函数。解决方法:1.建立一个模......
  • 深度学习--RNN实战与存在问题
    深度学习--RNN实战与存在问题时间序列预测importnumpyasnpimporttorchimporttorch.nnasnnimporttorch.optimasoptimfrommatplotlibimportpyplotasplt#数量num_time_steps=50#输入的维度input_size=1#隐藏层大小hidden_size=16#输出的维......
  • 个人所得税问题
     分析:设计一个结构体,;里面陈放结构体的征税起点,征税终点,征税率。定义一个结构体数组,将各个范围的征税格式存入该数组。定义一个函数calculate来计算个人所得税#include<stdio.h>#definetaxbase3500/*定义结构体*/typedefstruct{longstart;longend;doubletaxr......
  • 兔子产子问题
    问题描述有一对兔子,从出生后的第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总数为多少?代码如下#include<iostream>usingnamespacestd;intmain(){ longintfib1=1,fib2=1; longfib; cout<<f......