Suma de Dígitos Utilizando Recursividad

CCBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

La recursión es una técnica de programación en la que una función se llama a sí misma, lo que permite que la función se repita hasta que se alcanza un caso base y la función devuelve la salida final. En este laboratorio, aprenderemos cómo encontrar la suma de los dígitos de un número dado utilizando la recursión.

Nota: Necesitas crear el archivo ~/project/main.c tú mismo para practicar la codificación y aprender cómo compilar y ejecutarlo utilizando gcc.

cd ~/project
## crear main.c
touch main.c
## compilar main.c
gcc main.c -o main
## ejecutar main
./main

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c(("C")) -.-> c/BasicsGroup(["Basics"]) c/BasicsGroup -.-> c/variables("Variables") c/FunctionsGroup -.-> c/function_declaration("Function Declaration") c/FunctionsGroup -.-> c/function_parameters("Function Parameters") c/FunctionsGroup -.-> c/recursion("Recursion") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-123340{{"Suma de Dígitos Utilizando Recursividad"}} c/function_declaration -.-> lab-123340{{"Suma de Dígitos Utilizando Recursividad"}} c/function_parameters -.-> lab-123340{{"Suma de Dígitos Utilizando Recursividad"}} c/recursion -.-> lab-123340{{"Suma de Dígitos Utilizando Recursividad"}} c/user_input -.-> lab-123340{{"Suma de Dígitos Utilizando Recursividad"}} c/output -.-> lab-123340{{"Suma de Dígitos Utilizando Recursividad"}} end

Obtener la entrada del usuario

El primer paso es obtener la entrada del usuario, que será el número del que queremos encontrar la suma de sus dígitos. Para hacer esto, usaremos la función scanf para leer la entrada del usuario desde el flujo de entrada estándar (stdin).

#include<stdio.h>

int main()
{
    int num;
    printf("Ingrese un número: ");
    scanf("%d", &num);

    /* Agregar código */

    return 0;
}

Definiendo la función recursiva

A continuación, escribiremos una función recursiva para encontrar la suma de los dígitos del número dado. La función tomará un entero como parámetro y devolverá un entero como la suma de los dígitos. La función realizará los siguientes pasos:

  1. Si el número es menor que 10, la función devolverá el número mismo como la suma de los dígitos.
  2. Si el número es mayor o igual a 10, la función calculará la suma del último dígito y se llamará a sí misma con los dígitos restantes como argumento.
int sumOfDigits(int num)
{
    if(num < 10)
    {
        return num;
    }
    else
    {
        return num%10 + sumOfDigits(num/10);
    }
}

Llamando a la función recursiva

Ahora, llamaremos a la función recursiva definida en el paso anterior con la entrada del usuario obtenida en el Paso 1. La función devolverá la suma de los dígitos del número como un entero.

#include<stdio.h>

int sumOfDigits(int num);

int main()
{
    int num, sum;
    printf("Ingrese un número: ");
    scanf("%d", &num);

    sum = sumOfDigits(num);

    /* Agregar código */

    return 0;
}

int sumOfDigits(int num)
{
    if(num < 10)
    {
        return num;
    }
    else
    {
        return num%10 + sumOfDigits(num/10);
    }
}

Mostrando el resultado

El último paso es mostrar la suma de los dígitos del número obtenido en el Paso 1. Usaremos la función printf para mostrar el resultado en el flujo de salida estándar (stdout).

#include<stdio.h>

int sumOfDigits(int num);

int main()
{
    int num, sum;
    printf("Ingrese un número: ");
    scanf("%d", &num);

    sum = sumOfDigits(num);

    printf("La suma de los dígitos de %d es: %d", num, sum);

    return 0;
}

int sumOfDigits(int num)
{
    if(num < 10)
    {
        return num;
    }
    else
    {
        return num%10 + sumOfDigits(num/10);
    }
}

Resumen

En este laboratorio, aprendimos cómo encontrar la suma de los dígitos de un número dado utilizando la recursividad. Primero obtuvimos la entrada del usuario y definimos una función recursiva para calcular la suma de los dígitos. Luego llamamos a la función y mostramos el resultado al usuario.