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

জাভা প্রোগ্রাম: প্যালিনড্রোম (Palindrome) নাম্বার চেক করা

প্যালিনড্রোম নাম্বার কী?

প্যালিনড্রোম নাম্বার হলো এমন একটি সংখ্যা যা উল্টা পড়লেও একই থাকে। অর্থাৎ, সংখ্যাটির অঙ্কগুলো রিভার্স করলে মূল সংখ্যাটি পাওয়া যায়।

উদাহরণ:

  • ১২১, ১৩৩১, ৪৫৪, ১২৩২১, ১০০১
  • শব্দে: "madam", "racecar", "level", "malayalam"

ইনপুট ও আউটপুট উদাহরণ

ইনপুট:

Enter the number : 454

আউটপুট:

The number 454 is palindrome number

অ্যালগরিদম

  1. প্রোগ্রাম শুরু করুন
  2. চারটি ইন্টিজার ভেরিয়েবল ঘোষণা করুন: my_input, my_reverse, my_sum, my_temp
  3. ব্যবহারকারী থেকে সংখ্যা ইনপুট নিন
  4. my_sum = 0, my_temp = my_input সেট করুন
  5. হোয়াইল লুপ চালান যতক্ষণ my_temp > 0
  6. my_reverse = my_temp % 10 (শেষ অঙ্ক নিন)
  7. my_sum = (my_sum * 10) + my_reverse (রিভার্স সংখ্যা বানান)
  8. my_temp = my_temp / 10 (শেষ অঙ্ক বাদ দিন)
  9. লুপ শেষে my_input == my_sum চেক করুন
  10. ফলাফল প্রদর্শন করুন
  11. প্রোগ্রাম শেষ করুন

উদাহরণ ১: ব্যবহারকারী ইনপুট নেওয়া

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_tempmy_reverse (temp%10)my_sum (sum*10+rev)my_temp (temp/10)
১45440*10+4 = 445
২4554*10+5 = 454
৩4445*10+4 = 4540
৪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- (প্যালিনড্রোম নয়) - সাধারণত नेগেটিভকে প্যালিনড্রোম বলা হয় না
  • সিঙ্গেল ডিজিট: ০-৯ সব প্যালিনড্রোম
  • ট্রেলিং জিরো: ১০, ১০০ প্যালিনড্রোম নয় (রিভার্স ০১, ০০১)
  1. জাভাতে প্রাইম নম্বর চেক করা এবং পরবর্তী প্রাইম খুঁজে বের করা (কাস্টম লজিক)

  2. জাভা প্রোগ্রাম: প্যালিনড্রোম চেক করা

  3. পাইথনে স্ট্রিং নাম্বার প্যালিনড্রোম কিনা চেক করা

  4. পাইথনে বাইনারি রিপ্রেজেন্টেশন প্যালিনড্রোম কিনা যাচাই করার প্রোগ্রাম