Rumah > pembangunan bahagian belakang > C++ > Program rekursif mencetak semua nombor kurang daripada N yang hanya terdiri daripada digit 1 atau 3

Program rekursif mencetak semua nombor kurang daripada N yang hanya terdiri daripada digit 1 atau 3

王林
Lepaskan: 2023-08-29 23:05:06
ke hadapan
1505 orang telah melayarinya

Program rekursif mencetak semua nombor kurang daripada N yang hanya terdiri daripada digit 1 atau 3

Kami diberi pembolehubah integer sebagai N menyimpan nilai jenis integer positif. Tugasnya adalah untuk mencetak secara rekursif semua nombor yang kurang daripada nilai yang diberikan N yang mempunyai digit 1, 3 atau gabungan kedua-duanya.

Mari kita lihat pelbagai senario output input untuk ini −

Input − int num = 40

Output − Program rekursif untuk mencetak semua nombor kurang daripada N yang terdiri daripada digit 1 atau 3 sahaja ialah: 33 31 13 11 3 1

Penjelasan − kita diberi nilai integer positif sebagai 40 disimpan dalam nombor pembolehubah. Sekarang, kami akan mengetahui secara rekursif semua nombor yang mengandungi digit 1, 3 atau kedua-duanya dan nombor yang kurang daripada 40 ialah 1, 3, 11, 13, 31, 33

Input − int num = 5

  − Program rekursif untuk mencetak semua nombor kurang daripada N yang terdiri daripada digit 1 atau 3 sahaja ialah: 3 1

Penjelasan − kita diberi nilai integer positif kerana 40 disimpan dalam nombor pembolehubah. Sekarang, kita akan mengetahui secara rekursif semua nombor yang mengandungi digit 1, 3 atau kedua-duanya dan nombor tersebut kurang daripada 5 ialah 1 dan 3.

Input − int num = 1

Output − Input Salah

Penjelasan − 我们们班num中的正整数值为1。现在,我们将递归地找出所有包含数字1、3或两者的数字,并且这些数字小于1 adalah 0 kerana satu-satunya integer positif kurang daripada 1 ialah 0 oleh itu, output adalah input yang salah.

Pendekatan yang digunakan dalam program di bawah adalah seperti berikut

  • Masukkan pembolehubah integer sebagai nombor. Hantarkannya ke fungsi Recursive_Numbers(num) dengan menghantar num sebagai parameter kepada fungsi.

  • Di dalam fungsi Recursive_Numbers(num)

    • Isytiharkan pembolehubah sebagai semak jenis bool dan tetapkan dengan 1.

    • Semak JIKA nombor lebih besar daripada 0 kemudian mulakan SEDANGKAN suhu lebih besar daripada 0 DAN tandakan kepada 1. Tetapkan digit kepada suhu % 10.

    • Semak JIKA digit tidak sama dengan 1 DAN digit tidak sama dengan 3 kemudian tetapkan cek kepada 0. Tetapkan temp = temp / 10.

    • Semak JIKA semakan adalah 1 kemudian cetak nombor.

    • Buat panggilan rekursif ke fungsi Recursive_Numbers(nombor - 1)

🎗

如果我们运行上述代码,将会生成以下输出

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

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

}

Salin selepas log masuk
🎜

Atas ialah kandungan terperinci Program rekursif mencetak semua nombor kurang daripada N yang hanya terdiri daripada digit 1 atau 3. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan