首頁 >後端開發 >C++ >遞歸程式列印所有小於N的僅由數字1或3組成的數字

遞歸程式列印所有小於N的僅由數字1或3組成的數字

王林
王林轉載
2023-08-29 23:05:061439瀏覽

遞歸程式列印所有小於N的僅由數字1或3組成的數字

給定一個整數變數 N 來儲存正整數類型值。任務是遞歸地列印所有小於給定值N 的數字,其中數字為1、3 或兩者的組合。

讓我們看看此的各種輸入輸出場景-

#輸入− int num = 40

#輸出− 遞迴程式列印所有小於N 且僅由數字1 或3 組成的數字: 33 31 13 11 3 1

解釋− 我們得到一個正整數值 40,儲存在變數 num 中。現在,我們將遞歸地找出所有包含數字1、3 或兩者的數字,以及小於40 的數字是1, 3, 11, 13, 31, 33

輸入 − int num = 5

#輸出#− 遞迴程式列印所有小於N 且僅由數字1 或3 組成的數字為: 3 1

#解釋− 我們得到一個正整數值 40,儲存在變數 num 中。現在,我們將遞歸地找出所有包含數字 1、3 或兩者的數字以及小於 5 的數字 是1 和3。

輸入− int num = 1

##輸出 − 錯誤輸入

## 解釋− 我們給定了一個儲存在變數num中的正整數值為1。現在,我們將電位地找出所有包含數字1、3或兩者的數字,並且這些數字小於1 都是0,因為唯一小於1 的正整數是0,因此輸出是錯誤的輸入。

下面程式中所使用的方法如下

    ##輸入整數型變數作為編號。透過將num作為參數傳遞給函數,將其傳遞給函數Recursive_Numbers(num)。
  • 函數Recursive_Numbers(num)內部
    • #聲明一個變數作為bool 類型的檢查並將其設為1。
    • Check IF num 大於0 然後啟動WHILE temp 大於0 並檢查為1。將數字設為temp % 10 .
    • 檢查IF 數字不等於1 且數字不等於3,然後將檢查設為0。設定temp = temp / 10。
    • 檢查IF 檢查是否為1,然後列印num。
    • 遞歸呼叫函數Recursive_Numbers(num - 1)

############################################### Example###
#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
###

以上是遞歸程式列印所有小於N的僅由數字1或3組成的數字的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除