আমরা ইনপুট হিসাবে একটি পূর্ণসংখ্যা দেওয়া হয়. লক্ষ্য হল ইনপুট নম্বর Num একটি প্যালিনড্রোম কিনা বা পুনরাবৃত্তি ব্যবহার করে না তা খুঁজে বের করা।
একটি সংখ্যা প্যালিনড্রোম কিনা তা পরীক্ষা করতে, সেই সংখ্যাটিকে বিপরীত করুন এবং উভয় সংখ্যাই একই কিনা তা পরীক্ষা করুন। যদি বিপরীত সংখ্যাটি মূল সংখ্যার সমান হয়, তবে এটি প্যালিনড্রোম।
উদাহরণ
ইনপুট − সংখ্যা =34212;
আউটপুট − 34212 একটি প্যালিনড্রোম নয়!
ব্যাখ্যা − যদি আমরা 34212 কে বিপরীত করি তাহলে আমরা 21243 পাব। 34212 !=21243 তাই ইনপুট নম্বরটি প্যালিনড্রোম নয়।
ইনপুট − সংখ্যা =32123;
আউটপুট − 32123 হল প্যালিনড্রোম!
ব্যাখ্যা − যদি আমরা 32123 কে বিপরীত করি তাহলে আমরা 32132 পাব। 32123!=32123 তাই ইনপুট নম্বরটি প্যালিনড্রোম।
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
এই পদ্ধতিতে আমরা রিকার্সিভ ফাংশন revrsNum(int num1, int num2) ব্যবহার করছি যা ইনপুট নম্বর num1 এবং অস্থায়ী সংখ্যা num2 নেয়।
বেস কেসের জন্য-:যদি num1 হয় 0 রিটার্ন num2।
অন্য-:পুনরাবৃত্তি ব্যবহার করে num1 এর বিপরীত হিসাব করুন। গণনা করা বিপরীত ফেরত দিন।
যদি উভয়ই একই হয়, তাহলে ইনপুট নম্বরটি প্যালিনড্রোম।
-
ইনপুট নম্বর নিন।
-
Num2 =revrsNum(Num,0)
নিন -
ফাংশন revrsNum(int num1, int num2) পুনরাবৃত্তিমূলকভাবে num1 এর বিপরীত উৎপন্ন করে এবং বিপরীত সংখ্যা প্রদান করে।
-
যদি num1 0 হয় তাহলে গণনা করা বিপরীত হিসাবে num2 ফেরত দিন।
-
অন্যথায় 10 দ্বারা একাধিক num2 এবং এতে num1%10 যোগ করুন।
-
num1=num1/10 ব্যবহার করে num1 10 দ্বারা কমিয়ে দিন।
-
revrsNum(num1, num2);
ব্যবহার করে পুনরাবৃত্তি করুন -
ফলাফল ফেরত দিন।
-
প্রিন্ট ফলাফল প্রধান ভিতরে প্রাপ্ত.
উদাহরণ
#include <bits/stdc++.h> using namespace std; int revrsNum(int num1, int num2){ if (num1 == 0){ return num2; } num2 *= 10; num2 += (num1 % 10); num1 = num1/10; return revrsNum(num1, num2); } int main(){ int Num = 1345431; int Num2 = revrsNum(Num,0); if (Num == Num2){ cout <<Num<<" is Palindrome!"; } else{ cout <<Num<<" is not a Palindrome!"; } return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে
1345431 is Palindrome!