换酒编程
发布时间: 2023-06-19 03:12:17
⑴ 啤酒2块1瓶,4个盖换1瓶,2个空瓶换1瓶,10块可以喝几瓶 .用C语言编程解决,在线等,急啊!
//代码有不懂的问我
#include<iostream>
usingnamespacestd;
voiddrinkBeer(int&money,int&bottleNum,int&capNum,int&beerNum){
if(money<2&&bottleNum<2&&capNum<4){
return;
}
//拿钱换酒
if(money>2){
intdrinkNum=money/2;
beerNum+=drinkNum;
bottleNum+=drinkNum;
capNum+=drinkNum;
money-=drinkNum*2;//剩余的钱
drinkBeer(money,bottleNum,capNum,beerNum);
}
//拿瓶子换酒
if(bottleNum>2){
intdrinkNum=bottleNum/2;
bottleNum-=drinkNum*2;//喝完后多余没喝的瓶子数
beerNum+=drinkNum;
bottleNum+=drinkNum;
capNum+=drinkNum;
drinkBeer(money,bottleNum,capNum,beerNum);
}
//拿瓶盖换酒
if(capNum>4){
intdrinkNum=capNum/4;
capNum-=drinkNum*4;
beerNum+=drinkNum;
bottleNum+=drinkNum;
drinkBeer(money,bottleNum,capNum,beerNum);
}
}
intmain(){
intmoney=10;
intbottleNum=0;
intcapNum=0;
intbeerNum=0;
drinkBeer(money,bottleNum,capNum,beerNum);
printf("总共喝了%d瓶 ",beerNum);
system("pause");
return0;
}
⑵ 这个python程序要怎么编写,麻烦编程和思路都写一下,谢谢
这其实就是解一元一次方程。
假设可以喝x瓶啤酒,则有x个空瓶可以兑换x/2瓶啤酒不需要付钱,x个瓶盖可以兑换x/4瓶啤酒不需要付钱。
所以,方程就是:
(x-x/2-x/4)*2=10
具体代码如下:
x=4
while True:
if (x-x/2-x/4)*2==10:
print(x)
break
x+=4
下面是运行截图:
热点内容