换酒问题,代码有些小问题,求友友指点一下
#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: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 写的不太清楚,我能自己写一个 傻眼貓咪 发表于 2023-3-19 14:03
我用 Python 写,因为看起来比较简约,容易看
Python
输出
哇哇哇,你好厉害{:10_297:} 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;
}
}
} 额外减小 发表于 2023-3-19 19:54
C实现,可指定初始瓶数,兑换规则
能加一下注释吗,有点不理解各个词代表的含义
啊这啧啧啧 发表于 2023-3-19 20:16
能加一下注释吗,有点不理解各个词代表的含义
噢。我好像写错了,我再看看
大致就是bottle:空瓶
full:满的酒的瓶数
lid:盖
count:喝了多少瓶
好像写错了 额外减小 发表于 2023-3-19 20:43
噢。我好像写错了,我再看看
大致就是bottle:空瓶
full:满的酒的瓶数
没事没事,慢慢来 啊这啧啧啧 发表于 2023-3-19 21:32
没事没事,慢慢来
好
页:
[1]