鱼C论坛

 找回密码
 立即注册
查看: 1920|回复: 8

[已解决]换酒问题,代码有些小问题,求友友指点一下

[复制链接]
发表于 2023-3-19 12:37:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
        // * 换酒规则:3个空瓶换一瓶酒,5个瓶盖也可以换一瓶酒
        //* 现有7瓶酒(没喝呢,带瓶带盖)计算一共可以依靠规则喝多少瓶
int main(){
                int liquor=7;//酒
                int bottle=7;//酒瓶3个一换
            int lid=7;//酒盖5个一换
            int wine_1,wine_2;
            int bottle_1,lid_1;

        while(liquor>0){
                bottle/3==wine_1;//酒瓶3个一换,换了几瓶酒
                bottle%3==bottle_1;//剩余的酒瓶
                lid/5==wine_2;//酒盖5个一换,换了几瓶酒
                lid%5==lid_1;//剩余的酒盖
                liquor=wine_1+wine_2;//全部酒盖
                printf("现在有%d瓶酒\n",liquor);
                bottle=liquor+bottle_1;//全部的酒瓶
                printf("现在有%d瓶酒瓶\n",bottle);
                lid=liquor+lid_1; //全部的酒
                printf("现在有%d个酒盖\n",lid);
        }
       
        return 0;
}
最佳答案
2023-3-19 14:03:08
本帖最后由 傻眼貓咪 于 2023-3-19 14:04 编辑

我用 Python 写,因为看起来比较简约,容易看
Python
# 开始有:7个酒瓶、7个瓶盖、7支酒
bottles = 7
caps = 7
wine = 7

while bottles >= 3 or caps >= 5:
    new = bottles // 3 # 用酒瓶兑换新的酒
    wine += new # 累加计算共多少支酒
    bottles %= 3 # 已经兑换了空酒瓶,计算出剩下的

    # 凡是兑换新的酒,酒瓶和瓶盖增加
    bottles += new
    caps += new

    # 瓶盖如上面的算法一样
    new = caps // 5
    wine += new
    caps %= 5

    # 凡是兑换新的酒,酒瓶和瓶盖增加
    bottles += new
    caps += new

print(wine)
输出
13
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-19 14:03:08 | 显示全部楼层    本楼为最佳答案   
本帖最后由 傻眼貓咪 于 2023-3-19 14:04 编辑

我用 Python 写,因为看起来比较简约,容易看
Python
# 开始有:7个酒瓶、7个瓶盖、7支酒
bottles = 7
caps = 7
wine = 7

while bottles >= 3 or caps >= 5:
    new = bottles // 3 # 用酒瓶兑换新的酒
    wine += new # 累加计算共多少支酒
    bottles %= 3 # 已经兑换了空酒瓶,计算出剩下的

    # 凡是兑换新的酒,酒瓶和瓶盖增加
    bottles += new
    caps += new

    # 瓶盖如上面的算法一样
    new = caps // 5
    wine += new
    caps %= 5

    # 凡是兑换新的酒,酒瓶和瓶盖增加
    bottles += new
    caps += new

print(wine)
输出
13
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-19 14:35:31 | 显示全部楼层
写的不太清楚,我能自己写一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-19 18:45:21 | 显示全部楼层
傻眼貓咪 发表于 2023-3-19 14:03
我用 Python 写,因为看起来比较简约,容易看
Python
输出

哇哇哇,你好厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-19 19:54:21 | 显示全部楼层
C实现,可指定初始瓶数,兑换规则
#include <stdio.h>
int main()
{
        int full,bottle=0,lid=0,bchange,lchange,count=0;
        scanf("%d%d%d",&full,&bchange,&lchange);
        while(1)
        {
                if(!full)
                {
                        printf("%d\n",count);
                        return 0;
                }
                count+=full;
                bottle=full;
                lid=full;
                full=0;
                full+=bottle/bchange;
                bottle%=bchange;
                full+=lid/lchange;
                lid%=lchange;
                if(lid==lchange-1)
                {
                        full+=1;
                        lid=0;
                }
                if(bottle==bchange-1)
                {
                        full+=1;
                        bottle=0;
                }
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-19 20:16:24 | 显示全部楼层
额外减小 发表于 2023-3-19 19:54
C实现,可指定初始瓶数,兑换规则

能加一下注释吗,有点不理解各个词代表的含义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-19 20:43:08 | 显示全部楼层
啊这啧啧啧 发表于 2023-3-19 20:16
能加一下注释吗,有点不理解各个词代表的含义

噢。我好像写错了,我再看看
大致就是bottle:空瓶
full:满的酒的瓶数
lid:盖
count:喝了多少瓶
好像写错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-19 21:32:22 From FishC Mobile | 显示全部楼层
额外减小 发表于 2023-3-19 20:43
噢。我好像写错了,我再看看
大致就是bottle:空瓶
full:满的酒的瓶数

没事没事,慢慢来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-19 22:20:18 | 显示全部楼层

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-25 21:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表