Informática, perguntado por JuniorLacava, 11 meses atrás

3- Para criar uma função recursiva, a sintaxe nada difere das funções gerais, portanto, é necessário informar o tipo de retorno, o nome, e se recebe ou não parâmetros. O grande diferencial das funções recursivas e tradicionais é um comando no corpo da função, que invoca a si própria.

#include
int somar(int valor){
if(valor !=0){
return valor + soma(valor -1);
}
else{
return valor;
}
}
int main(){
printf("\n resultado = %d" ,somar(6));
return 0;
}

a. Resultado = 12
b. Resultado = 5
c. Resultado = 6
d. Resultado = 21
e. Resultado = 0

Soluções para a tarefa

Respondido por DeyvetWalef
15

Explicação:

int somar(6){

if(valor !=0){ //6 é diferente de 0, logo entra na condição

return 6 + somar(6 -1); //Perceba que a função sempre irá retornar e diminuir 1 do valor, somando ao 6 e assim sucessivamente

}

Desta forma, 6+ somar (6-1) + somar (5-1) + somar (4-1) + somar (3-1) + somar (2-1) + somar (1-1) = 21

Quando valor = 0, não entrará na condição de else, pois entrou no primeiro if

O programa então retorna 21 - Letra D


DeyvetWalef: Corrigido
Perguntas interessantes