Maison > développement back-end > C++ > le corps du texte

Le programme récursif imprime tous les nombres inférieurs à N composés uniquement des chiffres 1 ou 3

王林
Libérer: 2023-08-29 23:05:06
avant
1422 Les gens l'ont consulté

Le programme récursif imprime tous les nombres inférieurs à N composés uniquement des chiffres 1 ou 3

Nous recevons une variable entière sous la forme N stockant la valeur de type entier positif. La tâche consiste à imprimer récursivement tous les nombres inférieurs à la valeur donnée N ayant le chiffre 1, 3 ou la combinaison des deux. Sortie 

− Programme récursif pour imprimer tous les nombres inférieurs à N composés uniquement de chiffres 1 ou 3 : 33 31 13 11 3 1

Explication − nous recevons une valeur entière positive de 40 stockée dans une variable num. Maintenant, nous allons découvrir de manière récursive tous les nombres contenant les chiffres 1, 3 ou les deux et ces nombres inférieurs à 40 sont 1, 3, 11, 13, 31, 33

Input − int num = 5

Output  − Programme récursif pour imprimer tous les nombres inférieurs à N composés de chiffres 1 ou 3 uniquement : 3 1

Explication − on nous donne une valeur entière positive comme 40 stockée dans une variable num. Maintenant, nous allons découvrir de manière récursive tous les nombres contenant les chiffres 1, 3 ou les deux et les nombres inférieurs à 5. sont 1 et 3.

Entrée − num int = 1

Sortie − Mauvaise entrée

Explication − 我们给定了一个存储在变量num中的正整数值为1。现在,我们将递归地找出所有包含数字1、3或两者的数字,并且这些数字小于1 sont 0 car le seul entier positif inférieur à 1 est 0, par conséquent, la sortie est une mauvaise entrée.

L'approche utilisée dans le programme ci-dessous est la suivante

Saisissez une variable entière sous la forme num. Passez-le à la fonction Recursive_Numbers(num) en passant num comme paramètre à la fonction.

À l'intérieur de la fonction Recursive_Numbers(num)

  • Déclarez une variable comme vérification de type bool et définissez-la avec 1.

  • Vérifiez SI num supérieur à 0 puis démarrez PENDANT que la température est supérieure à 0 ET vérifiez à 1. Réglez le chiffre sur temp % 10.

    • Vérifiez SI le chiffre n'est pas égal à 1 ET le chiffre n'est pas égal à 3 puis réglez le contrôle à 0. Réglez temp = temp / 10.

    • Vérifiez SI check est 1 puis imprimez num.

    • Faites un appel récursif à la fonction Recursive_Numbers(num - 1)

    • Exemple
    • #include <iostream>
      using namespace std;
      void Recursive_Numbers(int num){
         bool check = 1;
         int temp = num;
         if(num > 0){
            while(temp > 0 && check == 1){
               int digit = temp % 10;
               if (digit != 1 && digit != 3){
                  check = 0;
               }
               temp = temp / 10;
            }
            if(check == 1){
               cout<< num << " ";
            }
            Recursive_Numbers(num - 1);
         }
      }
      int main(){
         int num = 40;
         if(num <= 1){
            cout<<"Wrong input";
         }
         else{
            cout<<"Recursive program to print all numbers less than N which consist of digits 1 or 3 only are: ";
            Recursive_Numbers(num);
         }
         return 0;
      }
      Copier après la connexion
    • 输出

      如果我们运行上述代码,将会生成以下输出
    • Recursive program to print all numbers less than N which consist of digits 1 or 3 only are: 33 31
      13 11 3 1
      Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal