小さなアルゴリズムの問題
たとえば、電話料金をリチャージする場合、10 元以上リチャージすると 1 元の電話クレジットが得られ、50 元以上リチャージすると 5 元の電話クレジットが得られます。 。
それで、この時、私は 51 元の電話クレジットをチャージしました。なぜ、5 元の電話クレジットを獲得するために 50 元をヒットしたのに、この時点では、もう 1 元の電話クレジットを獲得できませんでした。 10元以上。
上司、見てみるのを手伝ってください
<br />$a = array('50'=>'5','10'=>'1');<br />$s = 51;<br />function test($s,$a){<br /> $flag = 0;<br /> foreach($a as $k=>$v){<br /> if($s >=$k){<br /> $flag=$v;<br /> }<br /> }<br /> return $flag;<br />}<br />echo test($s,$a);<br />
$a = array('50'=>'5','10'=>'1');<br />$s = 51;<br />function test($s,$a){<br /> $flag = 0;<br /> foreach($a as $k=>$v){<br /> if($s >=$k){<br /> $flag=$v;<br /> break; //这样比较规范(一个模块只有一个出口)<br /> }<br /> }<br /> return $flag;<br />}<br />echo test($s,$a);
<br />[code=php]$a = array('50'=>'5','10'=>'1');<br />$s = 51;<br />function test($s,$a){<br /> $flag = 0;<br /> foreach($a as $k=>$v){<br /> if($s >=$k){<br />if($flag<$v) <br /> $flag=$v;<br /> <br /> }<br /> }<br /> return $flag;<br />}<br />echo test($s,$a);