প্যালিনড্রোম নাম্বার কী?
প্যালিনড্রোম নাম্বার হলো এমন একটি সংখ্যা যা উল্টা পড়লেও একই থাকে। অর্থাৎ, সংখ্যাটির অঙ্কগুলো রিভার্স করলে মূল সংখ্যাটি পাওয়া যায়।
উদাহরণ:
- ১২১, ১৩৩১, ৪৫৪, ১২৩২১, ১০০১
- শব্দে: "madam", "racecar", "level", "malayalam"
ইনপুট ও আউটপুট উদাহরণ
ইনপুট:
Enter the number : 454
আউটপুট:
The number 454 is palindrome number
অ্যালগরিদম
- প্রোগ্রাম শুরু করুন
- চারটি ইন্টিজার ভেরিয়েবল ঘোষণা করুন: my_input, my_reverse, my_sum, my_temp
- ব্যবহারকারী থেকে সংখ্যা ইনপুট নিন
- my_sum = 0, my_temp = my_input সেট করুন
- হোয়াইল লুপ চালান যতক্ষণ my_temp > 0
- my_reverse = my_temp % 10 (শেষ অঙ্ক নিন)
- my_sum = (my_sum * 10) + my_reverse (রিভার্স সংখ্যা বানান)
- my_temp = my_temp / 10 (শেষ অঙ্ক বাদ দিন)
- লুপ শেষে my_input == my_sum চেক করুন
- ফলাফল প্রদর্শন করুন
- প্রোগ্রাম শেষ করুন
উদাহরণ ১: ব্যবহারকারী ইনপুট নেওয়া
import java.util.Scanner;
public class Palindrome {
public static void main(String args[]) {
int my_input, my_reverse, my_sum, my_temp;
System.out.println("Required packages have been imported");
Scanner my_scanner = new Scanner(System.in);
System.out.println("A reader object has been defined");
System.out.print("Enter the number : ");
my_input = my_scanner.nextInt();
my_sum = 0;
my_temp = my_input;
while (my_temp > 0) {
my_reverse = my_temp % 10;
my_sum = (my_sum * 10) + my_reverse;
my_temp = my_temp / 10;
}
if (my_input == my_sum)
System.out.println("The number " + my_input + " is palindrome number");
else
System.out.println("The number " + my_input + " is not palindrome number");
}
}
উদাহরণ ২: পূর্বনির্ধারিত মান ব্যবহার
public class Palindrome {
public static void main(String args[]) {
int my_input, my_reverse, my_sum, my_temp;
my_input = 454;
System.out.println("The number is defined as " + my_input);
my_sum = 0;
my_temp = my_input;
while (my_temp > 0) {
my_reverse = my_temp % 10;
my_sum = (my_sum * 10) + my_reverse;
my_temp = my_temp / 10;
}
if (my_input == my_sum)
System.out.println("The number " + my_input + " is palindrome number");
else
System.out.println("The number " + my_input + " is not palindrome number");
}
}
স্টেপ-বাই-স্টেপ ডেমো (৪৫৪ এর জন্য)
| ইটারেশন | my_temp | my_reverse (temp%10) | my_sum (sum*10+rev) | my_temp (temp/10) |
|---|---|---|---|---|
| ১ | 454 | 4 | 0*10+4 = 4 | 45 |
| ২ | 45 | 5 | 4*10+5 = 45 | 4 |
| ৩ | 4 | 4 | 45*10+4 = 454 | 0 |
| ৪ | 0 | - | - | - (লুপ শেষ) |
ফলাফল: my_sum (454) == my_input (454) → প্যালিনড্রোম ✓
কোড ব্যাখ্যা
- % 10: সংখ্যার শেষ অঙ্ক পাওয়ার জন্য
- * 10: রিভার্স সংখ্যা বানানোর সময় ডেসিমেল প্লেস শিফট করার জন্য
- / 10: সংখ্যা থেকে শেষ অঙ্ক বাদ দেওয়ার জন্য
- my_temp: মূল সংখ্যা সংরক্ষণ করার জন্য কপি ভেরিয়েবল
স্ট্রিং প্যালিনড্রোম চেক (অ্যাল্টারনেটিভ)
public static boolean isPalindrome(String str) {
String reversed = new StringBuilder(str).reverse().toString();
return str.equals(reversed);
}
এজ কেস হ্যান্ডলিং
- নেগেটিভ সংখ্যা: -121 রিভার্স হলো 121- (প্যালিনড্রোম নয়) - সাধারণত नेগেটিভকে প্যালিনড্রোম বলা হয় না
- সিঙ্গেল ডিজিট: ০-৯ সব প্যালিনড্রোম
- ট্রেলিং জিরো: ১০, ১০০ প্যালিনড্রোম নয় (রিভার্স ০১, ০০১)