কম্পিউটার টিউটোরিয়াল

C++-এ পুনরাবৃত্তিমূলক প্রোগ্রাম: N-এর চেয়ে ছোট সকল সংখ্যা প্রিন্ট করুন যাদের অঙ্ক শুধু ১ বা ৩

আমাদের একটি পূর্ণসংখ্যা ভেরিয়েবল দেওয়া আছে N যেটি ধনাত্মক পূর্ণসংখ্যা টাইপের মান সংরক্ষণ করে। কাজটি হল পুনরাবৃত্তিমূলকভাবে দেওয়া মান N-এর চেয়ে ছোট সকল সংখ্যা প্রিন্ট করা যাদের অঙ্ক ১, ৩ বা উভয়ের সংমিশ্রণ।

বিভিন্ন ইনপুট-আউটপুট পরিস্থিতি দেখে নিই -

ইনপুট - int num = 40

আউটপুট - ১ বা ৩ অঙ্ক নিয়ে গঠিত N-এর চেয়ে ছোট সকল সংখ্যা প্রিন্ট করার পুনরাবৃত্তিমূলক প্রোগ্রাম: 33 31 13 11 3 1

ব্যাখ্যা - আমাদের একটি ধনাত্মক পূর্ণসংখ্যা মান 40 দেওয়া আছে যা num ভেরিয়েবলে সংরক্ষিত। এখন আমরা পুনরাবৃত্তিমূলকভাবে ১, ৩ বা উভয় অঙ্ক ধারণকারী সকল সংখ্যা খুঁজে বের করব এবং ৪০-এর চেয়ে ছোট যেসব সংখ্যা সেগুলো হল 1, 3, 11, 13, 31, 33

ইনপুট - int num = 5

আউটপুট - ১ বা ৩ অঙ্ক নিয়ে গঠিত N-এর চেয়ে ছোট সকল সংখ্যা প্রিন্ট করার পুনরাবৃত্তিমূলক প্রোগ্রাম: 3 1

ব্যাখ্যা - আমাদের একটি ধনাত্মক পূর্ণসংখ্যা মান 5 দেওয়া আছে যা num ভেরিয়েবলে সংরক্ষিত। এখন আমরা পুনরাবৃত্তিমূলকভাবে ১, ৩ বা উভয় অঙ্ক ধারণকারী সকল সংখ্যা খুঁজে বের করব এবং ৫-এর চেয়ে ছোট যেসব সংখ্যা সেগুলো হল 1 এবং 3।

ইনপুট - int num = 1

আউটপুট - ভুল ইনপুট

ব্যাখ্যা - আমাদের একটি ধনাত্মক পূর্ণসংখ্যা মান 1 দেওয়া আছে যা num ভেরিয়েবলে সংরক্ষিত। এখন আমরা পুনরাবৃত্তিমূলকভাবে ১, ৩ বা উভয় অঙ্ক ধারণকারী সকল সংখ্যা খুঁজে বের করব এবং ১-এর চেয়ে ছোট যেসব সংখ্যা সেগুলো হল ০ কারণ ১-এর চেয়ে ছোট একমাত্র ধনাত্মক পূর্ণসংখ্যা হল ০, তাই আউটপুট হল ভুল ইনপুট।

নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • একটি পূর্ণসংখ্যা ভেরিয়েবল num ইনপুট নিন। এটি Recursive_Numbers(num) ফাংশনে পাস করুন num প্যারামিটার হিসেবে।
  • Recursive_Numbers(num) ফাংশনের ভিতরে:
    • check নামের একটি ভেরিয়েবল bool টাইপের ঘোষণা করুন এবং সেটি 1 দিয়ে সেট করুন।
    • চেক করুন IF num > 0 তবে WHILE temp > 0 AND check == 1 শুরু করুন। digit = temp % 10 সেট করুন।
    • চেক করুন IF digit != 1 AND digit != 3 তবে check = 0 সেট করুন। temp = temp / 10 সেট করুন।
    • চেক করুন IF check == 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. C++-এ মিন হিপে নির্দিষ্ট মান x থেকে ছোট সব নোড প্রিন্ট করা

  2. C++ প্রোগ্রাম: ১০০-এর কম নম্বর সর্ট করা O(n) কমপ্লেক্সিটিতে

  3. পাইথন প্রোগ্রাম - নির্দিষ্ট অঙ্ক ধারণকারী সংখ্যা তালিকা থেকে বের করা

  4. পাইথন প্রোগ্রাম: একটি রেঞ্জের সকল নম্বর বের করা যেগুলো পারফেক্ট স্কোয়ার এবং যেগুলোর ডিজিটের যোগফল ১০-এর চেয়ে কম