Escreva uma função recursiva que calcule a soma de dois números naturais, através de incrementos sucessivos (Ex.: 3 + 2 = ++(++3)).
Passo 1
O problema pede uma função recursiva que calcule a soma de dois números naturais através de incrementos sucessivos. O conteúdo aqui é recursão simples, com um caso base (quando um dos somandos é zero) e um caso recursivo (incrementar um somando e decrementar o outro).
Passo 2
Identificamos o caso base da recursão: se o segundo número
for zero, não há mais incrementos a fazer, então a soma de
com
é simplesmente
.
No caso recursivo, enquanto , realizamos um incremento em
e um decremento em
. Logo,
No caso recursivo, enquanto
Passo 3
Para ilustrar com o exemplo
:
Passo 4
Implementação em linguagem C (estrutura semelhante em outras linguagens):
int soma(int a, int b) {
if (b == 0)
return a;
else
return soma(a + 1, b - 1);
}
Resposta
int soma(int a, int b) {
if (b == 0)
return a;
else
return soma(a + 1, b - 1);
}