<pre name="code" class="python">
#!/usr/bin/env python
#coding:utf-8
#啤酒2块钱一瓶,2个酒瓶可以换一瓶酒,4个瓶盖可以换一瓶酒
#问10块钱可以喝几瓶酒
def jipingjiu(money):
beer = money / 2 # 不考虑找零 money%2
btt, cap = money/2, money/2 #买过酒得到的酒瓶及瓶盖
flag = 1
brr = 0 #如果可以赊酒的话
while flag:
a = btt/2 #酒瓶换酒
b = cap/4 #瓶盖换酒
tmp = a + b - brr
if tmp > 0 or brr == 2:
beer += a + b
btt = a + b - brr + btt%2
cap = a + b - brr + cap%4
brr = 0
flag = btt + cap
# flag = btt/2 + cap/4 #如果不能赊酒的话
else:
btt += 1 #赊一瓶酒
cap += 1
brr += 1
print "喝了{}瓶酒,赊了{}瓶酒,剩余{}酒瓶及{}瓶盖".format(beer, brr, btt,cap)
jipingjiu(10)


SAS代码:
data work.test;
beer = 5;
btt = 5;
cap = 5;
flag = 1;
brr = 0;
do until (flag = 0);
a = int(btt/2);
b = int(cap/4);
tmp = a + b - brr;
if tmp > 0 or brr = 2 then do;
beer = beer + a + b;
btt = ( a + b - brr + mod(btt, 2));
cap = ( a + b - brr + mod(cap,4));
brr = 0;
flag = btt + cap;
end;
else do;
brr + 1;
btt + 1;
cap + 1;
end;
output;
end;
run;