Somme des chiffres en utilisant la récursivité

CCBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

La récursion est une technique de programmation où une fonction s'appelle elle-même, permettant à la fonction de se répéter jusqu'à ce qu'un cas de base soit rencontré et que la fonction renvoie la sortie finale. Dans ce laboratoire, nous allons apprendre à trouver la somme des chiffres d'un nombre donné en utilisant la récursion.

Note: Vous devez créer le fichier ~/project/main.c vous-même pour pratiquer la programmation et apprendre à le compiler et à l'exécuter à l'aide de gcc.

cd ~/project
## créer main.c
touch main.c
## compiler main.c
gcc main.c -o main
## exécuter main
./main

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) 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{{"Somme des chiffres en utilisant la récursivité"}} c/function_declaration -.-> lab-123340{{"Somme des chiffres en utilisant la récursivité"}} c/function_parameters -.-> lab-123340{{"Somme des chiffres en utilisant la récursivité"}} c/recursion -.-> lab-123340{{"Somme des chiffres en utilisant la récursivité"}} c/user_input -.-> lab-123340{{"Somme des chiffres en utilisant la récursivité"}} c/output -.-> lab-123340{{"Somme des chiffres en utilisant la récursivité"}} end

Obtenir l'entrée de l'utilisateur

La première étape consiste à obtenir l'entrée de l'utilisateur, qui sera le nombre dont nous voulons trouver la somme de ses chiffres. Pour ce faire, nous utiliserons la fonction scanf pour lire l'entrée de l'utilisateur à partir du flux d'entrée standard (stdin).

#include<stdio.h>

int main()
{
    int num;
    printf("Entrez un nombre : ");
    scanf("%d", &num);

    /* Ajoutez le code */

    return 0;
}

Définition de la fonction récursive

Ensuite, nous allons écrire une fonction récursive pour trouver la somme des chiffres du nombre donné. La fonction prendra un entier en paramètre et renverra un entier comme somme des chiffres. La fonction effectuera les étapes suivantes :

  1. Si le nombre est inférieur à 10, la fonction renverra le nombre lui-même comme somme des chiffres.
  2. Si le nombre est supérieur ou égal à 10, la fonction calculera la somme du dernier chiffre et s'appellera elle-même avec les chiffres restants en tant qu'argument.
int sumOfDigits(int num)
{
    if(num < 10)
    {
        return num;
    }
    else
    {
        return num%10 + sumOfDigits(num/10);
    }
}

Appel de la fonction récursive

Maintenant, nous allons appeler la fonction récursive définie dans l'étape précédente avec l'entrée de l'utilisateur obtenue dans l'étape 1. La fonction renverra la somme des chiffres du nombre sous forme d'un entier.

#include<stdio.h>

int sumOfDigits(int num);

int main()
{
    int num, sum;
    printf("Entrez un nombre : ");
    scanf("%d", &num);

    sum = sumOfDigits(num);

    /* Ajoutez le code */

    return 0;
}

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

Affichage du résultat

La dernière étape consiste à afficher la somme des chiffres du nombre obtenu à l'étape 1. Nous utiliserons la fonction printf pour afficher le résultat sur le flux de sortie standard (stdout).

#include<stdio.h>

int sumOfDigits(int num);

int main()
{
    int num, sum;
    printf("Entrez un nombre : ");
    scanf("%d", &num);

    sum = sumOfDigits(num);

    printf("La somme des chiffres de %d est : %d", num, sum);

    return 0;
}

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

Sommaire

Dans ce laboratoire, nous avons appris à trouver la somme des chiffres d'un nombre donné en utilisant la récursivité. Nous avons tout d'abord obtenu l'entrée de l'utilisateur et défini une fonction récursive pour calculer la somme des chiffres. Nous avons ensuite appelé la fonction et affiché le résultat à l'utilisateur.