2016-06-14 1 views
0

したがって、金額、パーセント(小数)と時間をとり、その量で倍を返す関数を作成しようとしています。PHP関数が再帰的に量に割合を適用する

私が期待した結果は以下の通りです:

$amount = 10000 
$percentage = 1.1 
$times = 1 

..だから

elevateToPercentage($amount, $percentage, $times) = 10,000 * 1.1 = 11,000 
$times = 2 
elevateToPercentage($amount, $percentage, $times) = ((10,000 * 1.1) * 1.1) = 12,100 
$times = 4 
elevateToPercentage($amount, $percentage, $times) = ((((10,000 * 1.1) * 1.1) * 1.1) * 1.1) = 14,641 

private function elevateToPercentage($amount, $percentage, $times) { 
    $count = 0; 
    for($a = 0; $a <= $times; $a++) { 
     $count += ($amount * $percentage); 
    } 
    return $count; 
} 

私は、これは論理エラーである知っているが、I'veはあまりアップされていると私はいないようです:(今はもう仕事に あなたたちは私を助けてくださいことができますか?

していただきありがとうございます!

+1

'$ A> = $回;'?!?確かに '<='を意味しますか? http://php.net/manual/en/control-structures.for.php –

+0

@MarkBakerは例を修正しました。ありがとう、私が疲れているのを見てくださいxDまだ私が必要としていることをしていません – mkmnstr

+0

'$ count'とは何ですか? –

答えて

2

何について:

function elevateToPercentage($amount, $percentage, $times) { 
    if ($times == 1){ 
     return $amount * $percentage; 
    }else{ 
     return $percentage * elevateToPercentage($amount, $percentage, $times -1); 
    } 
} 
+0

これはあまりにも仲が良いです!ありがとうございました!私は両方の答えを正しいものとしてマークしたいと思います。 – mkmnstr

+0

ラヴィンダーの答えも正しいですが、目的が再帰関数を使用することであれば、私のアプローチが優れています。再帰的アプローチを使用する必要がない場合(宿題「再帰関数を使用する」のように)、Ravinderのアプローチはおそらく大部分の人々にとって読みやすいでしょう。 – Dolfa

+0

あなたは正しいです。私はあなたのためにそれを設定します。 – mkmnstr

4

アウト置くのpow関数に

function elevateToPercentage($amount, $percentage, $times) { 
    $multiple = pow($percentage, $times); 
    return number_format($amount*$multiple) ; 
} 
$amount = 10000; 
$percentage = 1.1; 
$times = 1; 
echo elevateToPercentage($amount, $percentage, $times); 

を使用してそれを達成することができます

$times = 1; 11,000 
$times = 2; 12,100 
$times = 4; 14,641 
+0

それはそれをしました。私はこの機能について知らなかった。ありがとうございました! – mkmnstr

関連する問題