ধনাত্মক পূর্ণসংখ্যা টাইপ মান সংরক্ষণ করে N হিসাবে আমাদের একটি পূর্ণসংখ্যা ভেরিয়েবল দেওয়া হয়েছে। কাজটি হল প্রদত্ত মান N এর চেয়ে কম সংখ্যা 1, 3 বা উভয়ের সংমিশ্রণ সহ সমস্ত সংখ্যা পুনরাবৃত্তভাবে প্রিন্ট করা।
আসুন এর জন্য বিভিন্ন ইনপুট আউটপুট পরিস্থিতি দেখি -
ইনপুট − int num =40
আউটপুট − N-এর চেয়ে কম সমস্ত সংখ্যা প্রিন্ট করার পুনরাবৃত্তিমূলক প্রোগ্রাম যা শুধুমাত্র 1 বা 3 সংখ্যা নিয়ে গঠিত:33 31 13 11 3 1
ব্যাখ্যা − আমাদের একটি ধনাত্মক পূর্ণসংখ্যার মান দেওয়া হয়েছে 40 একটি পরিবর্তনশীল সংখ্যায় সংরক্ষিত। এখন, আমরা পুনরাবৃত্তভাবে 1, 3 বা উভয় সংখ্যাযুক্ত সমস্ত সংখ্যা খুঁজে বের করব এবং 40-এর কম সংখ্যাগুলি হল 1, 3, 11, 13, 31, 33
ইনপুট − int num =5
আউটপুট − N-এর চেয়ে কম সমস্ত সংখ্যা প্রিন্ট করার জন্য পুনরাবৃত্তিমূলক প্রোগ্রাম যা শুধুমাত্র 1 বা 3 সংখ্যা নিয়ে গঠিত:3 1
ব্যাখ্যা − আমাদের একটি ধনাত্মক পূর্ণসংখ্যার মান দেওয়া হয়েছে 40 একটি পরিবর্তনশীল সংখ্যায় সংরক্ষিত। এখন, আমরা পুনরাবৃত্তভাবে 1, 3 বা উভয় সংখ্যা বিশিষ্ট সমস্ত সংখ্যা এবং 5are 1 এবং 3-এর চেয়ে কম সেই সংখ্যাগুলি খুঁজে বের করব৷
ইনপুট − int num =1
আউটপুট - ভুল ইনপুট
ব্যাখ্যা − আমাদেরকে একটি ধনাত্মক পূর্ণসংখ্যার মান দেওয়া হয়েছে 1 একটি পরিবর্তনশীল সংখ্যায় সংরক্ষিত। এখন, আমরা পুনরাবৃত্তভাবে 1, 3 বা উভয় সংখ্যা বিশিষ্ট সমস্ত সংখ্যা খুঁজে বের করব এবং সেই সংখ্যাগুলি 1 এর চেয়ে কম 0 কারণ 1 এর চেয়ে কম একমাত্র ধনাত্মক পূর্ণসংখ্যা 0 তাই, আউটপুট ভুল ইনপুট।
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
সংখ্যা হিসাবে একটি পূর্ণসংখ্যা ভেরিয়েবল ইনপুট করুন। ফাংশনের প্যারামিটার হিসেবে num পাস করে এটিকে Recursive_Numbers(num) ফাংশনে পাস করুন।
-
Recursive_Numbers(num)
ফাংশনের ভিতরে-
টাইপ বুলের চেক হিসাবে একটি ভেরিয়েবল ঘোষণা করুন এবং এটি 1 দিয়ে সেট করুন।
-
0-এর বেশি হলে 0-এর বেশি হলে 0-এর বেশি হলে শুরু করুন এবং 1-এ চেক করুন। সংখ্যা টেম্প % 10-এ সেট করুন।
-
চেক করুন যদি ডিজিট 1 এর সমান না হয় এবং ডিজিট 3 এর সমান না হয় তারপর চেক 0 এ সেট করুন। temp =temp / 10 সেট করুন।
-
চেক করুন যদি চেক 1 হয় তাহলে প্রিন্ট নম্বর।
-
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