換酒編程
發布時間: 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
下面是運行截圖:
熱點內容