『PHP學習筆記』系列一:利用for迴圈解決過路口問題
阿新 • • 發佈:2018-11-17
過路口問題:
假設某人有100,000現金。每經過一次路口需要進行一次交費。交費規則為當他現金大於50,000時每次需要交5%如果現金小於等於50,000時每次交5,000。請寫一程式計算此人可以經過多少次這個路口。
解題思路:
此題最重要的其實就是思路和邏輯,程式碼實現其實很簡單,這裡我用了兩個同級的for迴圈。
- 首先,當現金數大於50,000時,每次通過都要在原本的基礎上減去5%,即:$i = $i - $i * 0.05 或 $i = $i * 0.95,直到現金數$i不再大於50,000為止;
- 然後,當現金數小於50,000時,每次通過減5000就很簡單了,即:$j = $j -5000,注意在第二個for迴圈中中要同時設定上限和下限,如果沒有設定下限就成了死迴圈,這裡可以用:$j >= 0 && $j <= 50000實現(當然 $j >= 5000 也可)。
程式碼實現:
<?php $p = 0; for ($i = 100000; $i > 50000; $i -= $i * 0.05) { $p++; } echo "當現金大於50000時通過了{$p}次<br/>"; $q = 0; for ($j = $i; $j >= 0 && $j <= 50000; $j -= 5000) { $q++; } echo "當現金小於50000大於0時通過了{$q}次<br/>"; echo "總共可以通過 " . ($p + $q) . " 次 "; echo "還剩餘" . ($j + 5000) . "元錢"; ?>
執行結果: