每瓶啤酒2元,2个空酒瓶或4个瓶盖可换1瓶啤酒。10元最多可喝多少瓶啤酒?

<?

echo "每瓶啤酒2元,2个空酒瓶或4个瓶盖可换1瓶啤酒。n元最多可喝多少瓶啤酒?<br/>";

for ($i=0; $i<=100 ; $i++) { 
	$x=$i;
	$n=floor($x/2);  //喝的酒数量
	$s=$x%2;         //剩余钱数
	$a=floor($x/2);  //酒瓶
	$b=floor($x/2);  //酒盖
	        
	echo $x."元钱:".hejiu($n,$a,$b).";剩余:".$s."元;<br/>";
}

/*
$x=10;
$a=floor($x/2);  //酒瓶
$b=floor($x/2);  //酒盖
$n=floor($x/2);  //喝的酒数量
echo $x."元钱:";
echo hejiu($n,$a,$b);
*/

function hejiu($n,$a,$b){
	while ($a>=2 || $b>=4) {
		if ($a>=2 && $b >=4) {
			$n = $n + floor($a/2) + floor($b/4);     
			$c = ($a%2) + floor($a/2) + floor($b/4); 
			$d = ($b%4) + floor($a/2) + floor($b/4); 
		}
		else if ($a>=2 && $b<4) {
			$n = $n + floor($a/2);
			$c = ($a%2) + floor($a/2);
			$d = $b + floor($a/2);
		}
		else if ($a<2 && $b>=4) {
			$n = $n + floor($b/4);
			$c = $a + floor($b/4);
			$d = ($b%4) + floor($b/4);
		}
		$a = $c;
		$b = $d;
	}

	//如果可以两个瓶盖换算成一个空酒瓶,再进行换酒,则在加上下面的代码
	/*while ($b>=2) {
		$n = $n + floor((floor($b/2) + $a)/2);
		$c = (floor($b/2) + $a)%2 + floor((floor($b/2) + $a)/2);
		$d = $b%2 + floor((floor($b/2) + $a)/2);
		$a = $c;
		$b = $d;
	}*/
	return "可以喝".$n."瓶酒,剩余空瓶:".$a.";剩余瓶盖:".$b;
}

  

 

每瓶啤酒2元,2个空酒瓶或4个瓶盖可换1瓶啤酒。n元最多可喝多少瓶啤酒?
0元钱:可以喝0瓶酒,剩余空瓶:0;剩余瓶盖:0;剩余:0元;
1元钱:可以喝0瓶酒,剩余空瓶:0;剩余瓶盖:0;剩余:1元;
2元钱:可以喝1瓶酒,剩余空瓶:1;剩余瓶盖:1;剩余:0元;
3元钱:可以喝1瓶酒,剩余空瓶:1;剩余瓶盖:1;剩余:1元;
4元钱:可以喝3瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:0元;
5元钱:可以喝3瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:1元;
6元钱:可以喝7瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:0元;
7元钱:可以喝7瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:1元;
8元钱:可以喝11瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:0元;
9元钱:可以喝11瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:1元;
10元钱:可以喝15瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:0元;
11元钱:可以喝15瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:1元;
12元钱:可以喝19瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:0元;
13元钱:可以喝19瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:1元;
14元钱:可以喝23瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:0元;
15元钱:可以喝23瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:1元;
16元钱:可以喝27瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:0元;
17元钱:可以喝27瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:1元;
18元钱:可以喝31瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:0元;
19元钱:可以喝31瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:1元;
20元钱:可以喝35瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:0元;
21元钱:可以喝35瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:1元;
22元钱:可以喝39瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:0元;
23元钱:可以喝39瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:1元;
24元钱:可以喝43瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:0元;
25元钱:可以喝43瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:1元;
26元钱:可以喝47瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:0元;
27元钱:可以喝47瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:1元;
28元钱:可以喝51瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:0元;
29元钱:可以喝51瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:1元;
30元钱:可以喝55瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:0元;
31元钱:可以喝55瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:1元;
32元钱:可以喝59瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:0元;
33元钱:可以喝59瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:1元;
34元钱:可以喝63瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:0元;
35元钱:可以喝63瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:1元;
36元钱:可以喝67瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:0元;
37元钱:可以喝67瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:1元;
38元钱:可以喝71瓶酒,剩余空瓶:1;剩余瓶盖:3;剩余:0元;

posted @ 2017-07-22 17:32  坏小子1993  阅读(1359)  评论(0编辑  收藏  举报