Então eu estou tentando criar uma função que leva quantidade, porcentagem (decimal) e horários e retorna um duplo com o valor.
O resultado que espero é o seguinte:
$amount = 10000
$percentage = 1.1
$times = 1
assim..
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;
}
Eu sei que isso é um erro de lógica, mas eu tenho sido muito e parece que não funcionam mais agora :( vocês podem me ajudar?
Obrigado!
Respostas:
2 para resposta № 1Sobre o quê:
function elevateToPercentage($amount, $percentage, $times) {
if ($times == 1){
return $amount * $percentage;
}else{
return $percentage * elevateToPercentage($amount, $percentage, $times -1);
}
}
4 para resposta № 2
Você pode consegui-lo usando a função 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);
Coloque para fora:
$times = 1; 11,000
$times = 2; 12,100
$times = 4; 14,641