কম্পিউটার

জাভাতে রিভার্স এবং ফাংশন যোগ করুন


আমাদের একটি পূর্ণসংখ্যা দেওয়া হয়েছে এবং এখানে আলোচ্যসূচি হল সংখ্যার অঙ্কগুলিকে বিপরীত করা এবং বিপরীত সংখ্যাটিকে আসল সংখ্যার সাথে যোগ করা এবং ফলাফলটি একটি প্যালিনড্রোম কিনা তা পরীক্ষা করা এবং এটি না হওয়া পর্যন্ত প্রক্রিয়াটি পুনরাবৃত্তি করা হয়। প্রক্রিয়াটির ব্রেকিং পয়েন্ট হল 1000টি পুনরাবৃত্তি এবং একটি মান সর্বাধিক দীর্ঘ মানের ( Long.MAX_VALUE) থেকে বেশি৷

উদাহরণস্বরূপ

ইনপুট − 1678

আউটপুট − প্রদত্ত ইনপুটের প্যালিনড্রোম 1678 293392

ব্যাখ্যা − ইনপুট নম্বরটি প্রথমে বিপরীত করা হয় এবং তারপরে মূল নম্বরে যোগ করা হয়, তারপর এটি প্যালিনড্রোমের জন্য পরীক্ষা করা হয় যদি এটি একটি প্যালিনড্রোম না হয় তবে আপডেট করা নম্বরে একই প্রক্রিয়া পুনরাবৃত্তি করা হয়। প্রক্রিয়াটির ব্রেকিং পয়েন্ট হল 1000টি পুনরাবৃত্তি এবং একটি মান সর্বাধিক দীর্ঘ মানের ( Long.MAX_VALUE) থেকে বেশি৷

ইনপুট − 202021038

আউটপুট − প্রদত্ত ইনপুটের প্যালিনড্রোম 202021038 1453553541

ব্যাখ্যা − ইনপুট নম্বরটি প্রথমে বিপরীত করা হয় এবং তারপরে মূল নম্বরে যোগ করা হয়, তারপর এটি প্যালিনড্রোমের জন্য পরীক্ষা করা হয় যদি এটি একটি প্যালিনড্রোম না হয় তবে আপডেট করা নম্বরে একই প্রক্রিয়া পুনরাবৃত্তি করা হয়। প্রক্রিয়াটির ব্রেকিং পয়েন্ট হল 1000টি পুনরাবৃত্তি এবং একটি মান সর্বাধিক দীর্ঘ মানের ( Long.MAX_VALUE) থেকে বেশি৷

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • মূল ফাংশনের ভিতরে

    • ইনপুট নম্বরটি calculateReverseandAdd(input) পদ্ধতিতে পাস করা হয়

  • পদ্ধতির ভিতরে রিভার্স এবং যোগ করুন

    গণনা করুন
    • একটি নতুন পরিবর্তনশীল rev_number চালু করা হয়েছে

    • শর্ত সংখ্যা <=সর্বোচ্চ

      দিয়ে একটি লুপ পুনরাবৃত্তি করা হয়
    • লুপের ভিতরে, reverseNumber() পদ্ধতির মাধ্যমে সংখ্যাটি পাস করে সংখ্যাটির বিপরীত প্রাপ্ত হয়।

    • বিপরীত নম্বরটি তারপর ইনপুট নম্বরে যোগ করা হয়

    • প্রাপ্ত নম্বরটি তারপর চেকপ্যালিনড্রোম() পদ্ধতিতে নম্বরটি পাস করে প্যালিনড্রোমের জন্য পরীক্ষা করা হয়। , যদি হ্যাঁ নম্বরটি ব্যবহারকারীর কাছে আউটপুট হিসাবে মুদ্রিত হয়।

    • যদি সংখ্যাটি প্যালিনড্রোম না হয় তবে একটি প্যালিনড্রোম প্রাপ্ত না হওয়া পর্যন্ত প্রাপ্ত সংখ্যার সাথে একই প্রক্রিয়াটি পুনরাবৃত্তি করা হয়, যদি ফলাফলের সংখ্যাটি সর্বোচ্চ দীর্ঘ মানের থেকে বেশি হয় তবে প্রদত্ত সংখ্যাটির জন্য কোনও সম্ভাব্য প্যালিনড্রোম বিদ্যমান নেই৷

উদাহরণ

import java.util.*;
public class ReverseAdd{
   static final long max = Long.MAX_VALUE;
   static long reverseNumber(long number){
      long rev_number = 0;
      while (number > 0){
         rev_number = rev_number * 10 + number % 10;
         number = number / 10;
      }
      return rev_number;
   }
   static boolean checkPalindrome(long number){
      return (reverseNumber(number) == number);
   }
   static void calculateReverseandAdd(long number){
      long rev_number = 0;
      System.out.println("Palindrome of the given input " + number);
      while (number <= max){
         rev_number = reverseNumber(number);
         number = number + rev_number;
         if (checkPalindrome(number)){
            System.out.println(number);
            break;
         }
         else if (number > max){
            System.out.println("No possible palindromes for the input");
         }
      }
   }
   public static void main(String[] args){
      calculateReverseandAdd(1678);
      calculateReverseandAdd(2961);
      calculateReverseandAdd(202021038);
   }
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে

Palindrome of the given input 1678
293392
Palindrome of the given input 2961
69696
Palindrome of the given input 202021038
1453553541

  1. জাভাতে হ্যাশসেট

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

  3. জাভাতে সংখ্যা গণনা করার জন্য একটি প্রোগ্রাম কীভাবে বাস্তবায়ন করবেন?

  4. Java এবং .NET এর তুলনা