Exercício 18: Construir um programa que utiliza uma função recursiva somaN para calcular a soma de 1 até n.

Passo 1

O enunciado pede um programa em que usamos uma função recursiva somaN para calcular a soma dos inteiros de 1 até n. O conteúdo é recursão em programação e vamos precisar identificar caso base, caso recursivo e montar o programa principal que lê n e mostra o resultado.

Passo 2

Recursão é quando uma função chama a si mesma para resolver subproblemas menores. Aqui definimos: 1) caso base: quando n = 1, retornamos 1; 2) caso recursivo: para n > 1, retornamos n + somaN(n−1). Em notação matemática:
somaN(n)= 1,&se n=1, n + somaN(n-1),&se n>1

Passo 3

Agora traduzimos essa definição para código C. A função somaN recebe um inteiro n; testa se n==1 (caso base) e retorna 1; caso contrário, retorna n + somaN(n−1).

Passo 4

No programa principal (função main) fazemos: ler o valor de n do usuário, chamar somaN(n) e imprimir o resultado. Com isso, finalizamos o programa completo.

Resposta

#include <stdio.h>
int somaN(int n) {
if (n == 1) {
return 1; // caso base
} else {
return n + somaN(n - 1); // passo recursivo
}
}
int main() {
int n;
printf(“Digite um valor inteiro positivo n: “);
scanf(”%d”, &n);
if (n < 1) {
    printf("n deve ser >= 1\n");
    return 1;
}

int resultado = somaN(n);
printf("Soma de 1 ate %d = %d\n", n, resultado);
return 0;
}

Exercícios relacionados