Introdução
Recursão é uma técnica de programação onde uma função chama a si mesma, permitindo que a função se repita até que um caso base seja atingido e a função retorne a saída final. Neste laboratório, aprenderemos como encontrar a soma dos dígitos de um determinado número usando recursão.
Nota: Você precisa criar o arquivo
~/project/main.cpor conta própria para praticar a codificação e aprender como compilar e executá-lo usando gcc.
cd ~/project
## create main.c
touch main.c
## compile main.c
gcc main.c -o main
## run main
./main
Obtendo a Entrada do Usuário
O primeiro passo é obter a entrada do usuário, que será o número do qual queremos encontrar a soma de seus dígitos. Para fazer isso, usaremos a função scanf para ler a entrada do usuário do fluxo de entrada padrão (stdin).
#include<stdio.h>
int main()
{
int num;
printf("Enter a number: ");
scanf("%d", &num);
/* Add Code */
return 0;
}
Definindo a Função Recursiva
Em seguida, escreveremos uma função recursiva para encontrar a soma dos dígitos do número fornecido. A função receberá um inteiro como parâmetro e retornará um inteiro como a soma dos dígitos. A função executará as seguintes etapas:
- Se o número for menor que 10, a função retornará o próprio número como a soma dos dígitos.
- Se o número for maior ou igual a 10, a função calculará a soma do último dígito e chamará a si mesma com os dígitos restantes como argumento.
int sumOfDigits(int num)
{
if(num < 10)
{
return num;
}
else
{
return num%10 + sumOfDigits(num/10);
}
}
Chamando a Função Recursiva
Agora, chamaremos a função recursiva definida no passo anterior com a entrada do usuário obtida no Passo 1. A função retornará a soma dos dígitos do número como um inteiro.
#include<stdio.h>
int sumOfDigits(int num);
int main()
{
int num, sum;
printf("Enter a number: ");
scanf("%d", &num);
sum = sumOfDigits(num);
/* Add Code */
return 0;
}
int sumOfDigits(int num)
{
if(num < 10)
{
return num;
}
else
{
return num%10 + sumOfDigits(num/10);
}
}
Exibindo o Resultado
O passo final é exibir a soma dos dígitos do número obtido no Passo 1. Usaremos a função printf para exibir o resultado no fluxo de saída padrão (stdout).
#include<stdio.h>
int sumOfDigits(int num);
int main()
{
int num, sum;
printf("Enter a number: ");
scanf("%d", &num);
sum = sumOfDigits(num);
printf("Sum of digits of %d is: %d", num, sum);
return 0;
}
int sumOfDigits(int num)
{
if(num < 10)
{
return num;
}
else
{
return num%10 + sumOfDigits(num/10);
}
}
Resumo
Neste laboratório, aprendemos como encontrar a soma dos dígitos de um número dado usando recursão. Primeiro, obtivemos a entrada do usuário e definimos uma função recursiva para calcular a soma dos dígitos. Em seguida, chamamos a função e exibimos o resultado para o usuário.



