Heim >Backend-Entwicklung >C++ >Ein rekursives Programm gibt alle Zahlen kleiner als N aus, die nur aus den Ziffern 1 oder 3 bestehen

Ein rekursives Programm gibt alle Zahlen kleiner als N aus, die nur aus den Ziffern 1 oder 3 bestehen

王林
王林nach vorne
2023-08-29 23:05:061449Durchsuche

Ein rekursives Programm gibt alle Zahlen kleiner als N aus, die nur aus den Ziffern 1 oder 3 bestehen

Wir erhalten eine Ganzzahlvariable als N, die den positiven Ganzzahltypwert speichert. Die Aufgabe besteht darin, alle Zahlen, die kleiner als der gegebene Wert N sind und die Ziffern 1, 3 oder eine Kombination aus beiden haben, rekursiv auszugeben.

Sehen wir uns dafür verschiedene Eingabe-Ausgabe-Szenarien an −

Eingabe− int num = 40

Ausgabe − Rekursives Programm zum Drucken aller Zahlen kleiner als N, die nur aus den Ziffern 1 oder 3 bestehen, sind: 33 31 13 11 3 1

Erklärung − Wir erhalten einen positiven ganzzahligen Wert als 40, der in einer Variablen num gespeichert ist. Jetzt werden wir rekursiv alle Zahlen herausfinden, die die Ziffern 1, 3 oder beide enthalten, und die Zahlen unter 40 sind 1, 3, 11, 13, 31, 33

Input − int num = 5

Output  − Rekursives Programm zum Drucken aller Zahlen kleiner als N, die nur aus den Ziffern 1 oder 3 bestehen, sind: 3 1

Erklärung − Wir erhalten einen positiven ganzzahligen Wert von 40, der in einer Variablen num gespeichert ist. Jetzt werden wir rekursiv alle Zahlen ermitteln, die die Ziffern 1, 3 oder beide enthalten, sowie die Zahlen kleiner als 5 sind 1 und 3.

Input − int num = 1

Output − Wrong Input

Explanation −的正整数值为1.现在,我们将递归地找出所有包含数字1, 3或两者的数字, 并且这些数字小于1 sind 0, da die einzige positive Ganzzahl kleiner als 0 0 ist. Daher ist die Ausgabe eine falsche Eingabe.

Der im folgenden Programm verwendete Ansatz ist wie folgt: Geben Sie eine Ganzzahlvariable als Zahl ein. Übergeben Sie es an die Funktion „Recursive_Numbers(num)“, indem Sie „num“ als Parameter an die Funktion übergeben

    Überprüfen Sie, ob die Zahl größer als 0 ist, und starten Sie, während die Temperatur größer als 0 ist, und prüfen Sie auf 1. Stellen Sie die Ziffer auf Temperatur % 10 ein temp = temp / 10.
  • Überprüfen Sie, ob die Prüfung 1 ist, und geben Sie dann Nummer aus.
    • Führen Sie einen rekursiven Aufruf der Funktion Recursive_Numbers(num - 1) aus
    • Beispiel

      #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;
      }
    • 输出
    • 如果我们运行上述代码,将会生成以下输出

      Recursive program to print all numbers less than N which consist of digits 1 or 3 only are: 33 31
      13 11 3 1

Das obige ist der detaillierte Inhalt vonEin rekursives Programm gibt alle Zahlen kleiner als N aus, die nur aus den Ziffern 1 oder 3 bestehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen