正の整数型の値を格納する整数変数が 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 サイトの他の関連記事を参照してください。