Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में K अंकों का नौवां पैलिंड्रोम

k अंकों के n-वें पैलिंड्रोम को खोजने के लिए, हम पहले k अंकों की संख्या से तब तक पुनरावृति कर सकते हैं जब तक कि हमें n-th पैलिंड्रोम संख्या नहीं मिल जाती। यह दृष्टिकोण कुशल नहीं है। आप इसे स्वयं आजमा सकते हैं।

अब, k अंकों के n-वें पैलिंड्रोम को खोजने के लिए कुशल तरीका देखते हैं।

संख्या में दो भाग होते हैं। पहली छमाही दूसरी छमाही के विपरीत के बराबर है।

k अंकों वाली n-वें नंबर की पहली छमाही है

यदि k विषम है तो (n - 1) + 10 k/2 और(n-1)+10 k/2-1

k अंकों वाली n-वें संख्या का दूसरा भाग अंकों के पहले भाग का उल्टा होगा। यदि k विषम है, तो संख्या के पहले भाग से अंतिम अंक को काट दें।

एल्गोरिदम

  • संख्या n और k को प्रारंभ करें।
  • k के मान का उपयोग करके k-अंकीय पैलिंड्रोम के पहले आधे भाग की लंबाई ज्ञात करें।
  • पैलिंड्रोम का पहला आधा भाग pow(10, लंबाई) + n - 1 है।
  • यदि k विषम है, तो अंतिम अंक को पैलिंड्रोम के पहले भाग से हटा दें।
  • पहली छमाही को उलट दें और दूसरी छमाही को प्रिंट करें।

कार्यान्वयन

C++ में उपरोक्त एल्गोरिथम का कार्यान्वयन निम्नलिखित है

#include<bits/stdc++.h>
using namespace std;
void findNthPalindrome(int n, int k) {
   int temp = (k & 1) ? (k / 2) : (k / 2 - 1);
   int palindrome = (int)pow(10, temp);
   palindrome += n - 1;
   cout << palindrome;
   if (k & 1) {
      palindrome /= 10;
   }
   while (palindrome) {
      cout << palindrome % 10;
      palindrome /= 10;
   }
      cout << endl;
}
int main(){
   int n = 7, k = 8;
   findNthPalindrome(n ,k);
   return 0;
}

आउटपुट

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।

10066001

  1. C++ में एक पालिंड्रोम तोड़ें

    मान लीजिए कि हमारे पास एक पैलिंड्रोमिक स्ट्रिंग पैलिंड्रोम है, हमें ठीक एक वर्ण को किसी भी लोअरकेस अंग्रेजी अक्षर से बदलना होगा ताकि स्ट्रिंग लेक्सिकोग्राफ़िक रूप से सबसे छोटी संभव स्ट्रिंग बन जाए जो पैलिंड्रोम नहीं है। अब ऐसा करने के बाद, हमें अंतिम स्ट्रिंग ढूंढनी होगी। यदि ऐसा करने का कोई तरीका न

  1. सी++ में पैलिंड्रोम विभाजन

    मान लीजिए कि हमारे पास एक इनपुट स्ट्रिंग है, उस स्ट्रिंग का एक विभाजन पैलिंड्रोम विभाजन है, जब विभाजन का प्रत्येक विकल्प एक पैलिंड्रोम होता है। इस खंड में, हमें दिए गए स्ट्रिंग को विभाजित करने वाले पैलिंड्रोम के लिए आवश्यक न्यूनतम कटौती का पता लगाना है। तो अगर स्ट्रिंग अब्बाबबाबाबाबा की तरह है, तो प

  1. जाँच करें कि C++ में कोई संख्या पालिंड्रोम है या नहीं

    यहां हम देखेंगे कि कैसे जांचा जाता है कि कोई संख्या पैलिंड्रोम है या नहीं। दोनों दिशाओं में पैलिंड्रोम नंबर समान हैं। उदाहरण के लिए, संख्या 12321 पैलिंड्रोम है, लेकिन 12345 पैलिंड्रोम नहीं है। तर्क बहुत सीधा है। हमें संख्या को उल्टा करना है, और यदि उलटी संख्या वास्तविक संख्या के समान है, तो वह एक प