हमें एक पूर्णांक के साथ दिया गया है और यहां एजेंडा संख्या के अंकों को उलटना और उलटी संख्या को मूल संख्या में जोड़ना है और जांचना है कि परिणामी संख्या एक पैलिंड्रोम है या नहीं और प्रक्रिया तब तक दोहराई जाती है जब तक वह ऐसा नहीं करती। प्रक्रिया का ब्रेकिंग पॉइंट 1000 पुनरावृत्तियों और अधिकतम लंबे मान (long.MAX_VALUE) से अधिक मान है।
उदाहरण के लिए
इनपुट - 1678
आउटपुट -दिए गए इनपुट का पैलिंड्रोम 1678 293392
स्पष्टीकरण - इनपुट नंबर को पहले उलट दिया जाता है और फिर मूल संख्या में जोड़ा जाता है, फिर पैलिंड्रोम के लिए इसकी जांच की जाती है यदि यह पैलिंड्रोम नहीं है तो अपडेट किए गए नंबर पर भी यही प्रक्रिया दोहराई जाती है। प्रक्रिया का ब्रेकिंग पॉइंट 1000 पुनरावृत्तियों और अधिकतम लंबे मान (long.MAX_VALUE) से अधिक मान है।
इनपुट - 202021038
आउटपुट -दिए गए इनपुट का पैलिंड्रोम 202021038 1453553541
स्पष्टीकरण - इनपुट नंबर को पहले उलट दिया जाता है और फिर मूल संख्या में जोड़ा जाता है, फिर पैलिंड्रोम के लिए इसकी जांच की जाती है यदि यह पैलिंड्रोम नहीं है तो अपडेट किए गए नंबर पर भी यही प्रक्रिया दोहराई जाती है। प्रक्रिया का ब्रेकिंग पॉइंट 1000 पुनरावृत्तियों और अधिकतम लंबे मान (long.MAX_VALUE) से अधिक मान है।
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
मुख्य समारोह के अंदर
-
इनपुट नंबर गणनाReverseandAdd(input) . विधि में पास किया जाता है
-
-
विधि के अंदर गणना करेंरिवर्स और जोड़ें
-
एक नया वेरिएबल rev_number पेश किया गया है
-
एक लूप को कंडीशन नंबर <=मैक्स
. के साथ पुनरावृत्त किया जाता है -
लूप के अंदर, संख्या का उल्टा reverseNumber() विधि से नंबर पास करके प्राप्त किया जाता है
-
उल्टे नंबर को फिर इनपुट नंबर में जोड़ा जाता है
-
इसके बाद प्राप्त संख्या को checkPalindrome() विधि में नंबर पास करके पैलिंड्रोम के लिए चेक किया जाता है। , यदि हाँ, तो नंबर उपयोगकर्ता को आउटपुट के रूप में प्रिंट किया जाता है।
-
यदि संख्या पैलिंड्रोम नहीं है, तो यही प्रक्रिया प्राप्त संख्या के साथ तब तक दोहराई जाती है जब तक कि एक पैलिंड्रोम प्राप्त नहीं हो जाता है, यदि परिणामी संख्या अधिकतम लंबे मान से अधिक है तो कोई भी संभावित पैलिंड्रोम दी गई संख्या के मौजूद होने की सीमा में नहीं है।
-
उदाहरण
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