একটি প্যালিনড্রোম সংখ্যা একই থাকে যদি এর সংখ্যাগুলি বিপরীত হয় অর্থাৎ এর মান পরিবর্তন না হয়। একটি প্যালিনড্রোম সংখ্যাকে সিমেট্রিকও বলা যেতে পারে। উদাহরণস্বরূপ:12321, 1551, 11 ইত্যাদি সংখ্যাগুলি হল প্যালিনড্রোম কারণ তাদের সংখ্যাগুলি উল্টে গেলেও এগুলি পরিবর্তিত হয় না৷
একটি প্রোগ্রাম যা পরীক্ষা করে যে একটি সংখ্যা প্যালিনড্রোম কিনা তা নিম্নরূপ।
উদাহরণ
#include<iostream> using namespace std; void palindrome(int num) { int rev=0,val; val = num; while(num > 0) { rev = rev * 10 + num % 10; num = num / 10; } if(val==rev) cout<<val<<" is a palindrome"<<endl; else cout<<val<<" is not a palindrome"<<endl; } int main() { palindrome(12321); palindrome(1234); return 0; }
আউটপুট
12321 is a palindrome 1234 is not a palindrome
উপরের প্রোগ্রামে, ফাংশন প্যালিনড্রোম খুঁজে বের করে যে সংখ্যাটি প্যালিনড্রোম কিনা। ফাংশনটি একটি প্যারামিটার অর্থাৎ সংখ্যা নেয়। কোন প্রক্রিয়া সঞ্চালিত হওয়ার আগে, সংখ্যার একটি ডুপ্লিকেট তৈরি করা হয় অর্থাৎ val। num-এর মান বিপরীত করা হয় এবং rev-এ সংরক্ষিত হয়।
এটি নিম্নলিখিত কোড স্নিপেট −
দ্বারা দেখানো হয়েছেint rev=0,val; val = num; while(num > 0) { rev = rev * 10 + num % 10; num = num / 10; }
এর পরে, rev-এর মানটিকে val-এর সাথে তুলনা করা হয়, সংখ্যার সাথে নয়। এর কারণ হল সংখ্যার মান এখন পর্যন্ত 0। যদি রেভ ভ্যালের সমান হয়, তাহলে সংখ্যাটি একটি প্যালিনড্রোম এবং এটি প্রিন্ট করা হয়, অন্যথায় সংখ্যাটি প্যালিনড্রোম নয়৷
এটি নিম্নলিখিত কোড স্নিপেটে দেখা যেতে পারে।
if(val==rev) cout<<val<<" is a palindrome"<<endl; else cout<<val<<" is not a palindrome"<<endl;