Rumah > Artikel > pembangunan bahagian belakang > 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.
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.
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)
#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; }🎜
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!