ホームページ >バックエンド開発 >C++ >再帰的プログラムは、数字 1 または 3 のみで構成される N 未満のすべての数値を出力します。

再帰的プログラムは、数字 1 または 3 のみで構成される N 未満のすべての数値を出力します。

王林
王林転載
2023-08-29 23:05:061450ブラウズ

再帰的プログラムは、数字 1 または 3 のみで構成される N 未満のすべての数値を出力します。

正の整数型の値を格納する整数変数が N として与えられます。このタスクは、1 桁、3 桁、またはその両方の組み合わせを持つ、指定された値 N より小さいすべての数値を再帰的に出力することです。

これについて、さまざまな入出力シナリオを見てみましょう。-

入力 - int num = 40

出力 - 数字 1 または 3 のみで構成される N 未満のすべての数値を出力する再帰プログラムは次のとおりです: 33 31 13 11 3 1

説明 - 変数 num に格納された正の整数値 40 が与えられます。ここで、1、3、またはその両方の数字を含むすべての数値を再帰的に見つけます。40 未満の数値は 1、3、11、13、31、33

Input − int です。 num = 5

出力 - 数字 1 または 3 のみで構成される N 未満のすべての数値を出力する再帰プログラムは次のとおりです: 3 1

説明 - 変数 num に格納された正の整数値 40 が与えられます。ここで、数字 1、3、またはその両方を含むすべての数字と、5 未満の数字を再帰的に見つけます。

入力 - int num = 1

出力 - 間違った入力

説明 - 我々は、number num に保存されている正しい整数の値を 1 と定めています。 1 未満の唯一の正の整数は 0 であるため、出力は間違った入力になります。

以下のプログラムで使用されるアプローチは次のとおりです。

  • 整数変数を入力してください番号として。 num をパラメータとして関数に渡すことで、それを関数 Recursive_Numbers(num) に渡します。

  • 関数 Recursive_Numbers(num) の内部

    • 変数を bool 型のチェックとして宣言し、1 を設定します。

    • IF num が 0 より大きいことを確認してから、WHILE temp が 0 より大きいことを開始し、1 にチェックします。桁を temp % 10 に設定します。 .

    • IF 桁が 1 に等しくなく、かつ桁が 3 に等しくないことを確認し、チェックを 0 に設定します。温度 = 温度 / 10 を設定します。

    • IF チェックが 1 であることを確認し、num.

    • 関数を再帰呼び出しします。Recursive_Numbers(num - 1)

##例

#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

以上が再帰的プログラムは、数字 1 または 3 のみで構成される N 未満のすべての数値を出力します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。