1.简述一下买酒问题:
有10元钱,2元钱可以买一瓶酒,2个空瓶子可以换一瓶酒,4个瓶盖可以换一瓶酒,问能买多少瓶酒。
一开始老师说这个题目,我除了用while之外没有其他头绪。后来老师讲解之后。我知道程序应该这样来编写。
1.找到变量,给变量定义。
比如这题的变量就有,money,dead,cap,count除此以外,还有中间变量add。
2.想循环条件
很显然这里的循环条件有三条,因为三种方式都可以买到酒,那么用or就可以
3.分情况考虑
用钱买是一种,用盖子换是一种,用瓶子换又是一种。
代码如下:
print("ujs-lili")
money=10
count=0
add=0
cap=0
dead=0
while money >= 2 or dead >=2 or cap >=4 :
add=money//2
money=money%2
count=count+add
dead=dead+add
cap=cap+add
add=dead//2
dead=dead%2
dead=dead+add #这里忘记写了
cap=cap+add
count=count+add
add=cap//4
cap=cap%4
cap=cap+add #这里忘记写了
dead=dead+add
count=count+add
print('喝了',count,'剩下钱数',money,'盖子',cap,'空瓶子',dead)
#输出结果
ujs-lili
喝了 15 剩下钱数 0 盖子 3 空瓶子 1
当蹨这个程序也可以用matlab写,大致思路是一样的。
代码如下:
disp('ujs-lili');
money=10;
count=0;
add=0;
cap=0;
dead=0;
while money >= 2 || dead >=2 || cap >=4
add=zhengchu(money,2);