Informática, perguntado por tthai123, 1 ano atrás

Considere o script PHP a seguir:
<?php
function f($v, $n) {
if ($n <= 0) return 1;
else
return $v[$n-1] * f($v, $n-2) + 1;
}
$a = array(0,1,2,3);
print (f($a, 4));
?>
O que será exibido na tela?
a) 6
b) 7
c) 0
d) NULL

Soluções para a tarefa

Respondido por bokomoko
5
function f($v, $n) { 
if ($n <= 0) return 1; 
else 
return $v[$n-1] * f($v, $n-2) + 1; 

$a = array(0,1,2,3); 
print (f($a, 4)); 

a função é chamada com o vetor (0,1,2,3) e o indice 4
como 4 é >0 então o primeiro if dá falso
então vai pegar o elemento (4-1) = 3 que é 3 e chamar recursivamente a funcão
agora com indice 2
pega o elemento (2-1) = 1 que é 1  e chama  recursivamente a funçao agora com indice 0
aí o tal if dá verdadeiro e a função retorna 1 que é somado a 1, dá 2 que soma com 1, dá 3
Esse 3 retorna é somado a 1, dá 4 e é somado ao 3, que dá então 7

Resposta = 7 , alternativa B

https://repl.it/@bokomoko/httpsbrainlycombrtarefa13253457

bokomoko: obrigado pela oportunidade de ajudá-la
tthai123: obg você !!
Perguntas interessantes