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
Respostas
respondido por:
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 similares
5 anos atrás
5 anos atrás
5 anos atrás
7 anos atrás
7 anos atrás
7 anos atrás
8 anos atrás
8 anos atrás