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

C++ में सरणी के रोटेशन में प्रत्येक तत्व को जोड़कर अधिकतम संख्या


हमें संख्याओं की एक सर्कुलर सरणी दी गई है। एक सर्कुलर सरणी वह है जिसमें तत्व इस तरह व्यवस्थित होते हैं कि पहला तत्व अंतिम तत्व के ठीक बगल में माना जाता है। इनका उपयोग क्यू को लागू करने के लिए किया जाता है।

प्रत्येक तत्व का समान या अलग अंक गणना होती है। लक्ष्य तत्वों के रोटेशन का उपयोग करके यदि आवश्यक हो तो संख्याओं को जोड़कर उच्चतम संभव संख्या बनाना है। हम सभी तत्वों के सबसे बाएं अंक में से सबसे अधिक बाएं अंक को ढूंढकर ऐसा करेंगे। सबसे अधिक बाएं अंक वाली संख्या पहली जगह लेगी।

  • यदि यह पहली स्थिति में है, तो इंडेक्स 1 से n-1 पर सभी संख्याओं को वैसे ही रखा जाता है।
  • यदि यह बीच में कहीं है, और इसका इंडेक्स i है, तो इंडेक्स i+1 से n-1 पर सभी को पहले जोड़ा जाता है उसके बाद इंडेक्स 0 से i-1 पर वाले।
  • यदि यह अंतिम है, तो इंडेक्स 0 से i-1 पर सभी को इसके बाद जोड़ा जाता है।

इनपुट

Arr[] = { 121, 43, 65, 32 }

आउटपुट

उच्चतम संख्या: 653212143

व्याख्या: सबसे अधिक बायां अंक 6 है। 65 को पहली स्थिति पर रखें उसके बाद 32, फिर 121,43। क्योंकि Arr[] एक सर्कुलर सरणी है।

इनपुट

Arr[] = { 1101, 9, 321, 77 }

आउटपुट

उच्चतम संख्या: 9321771101

व्याख्या: सबसे अधिक बायां अंक 9321771101 है। 9 को पहली स्थिति पर रखें उसके बाद 321, फिर 77, 1101। क्योंकि Arr[] एक सर्कुलर सरणी है।

प्रयुक्त दृष्टिकोण

  • सरणी arr[] संख्याओं को संग्रहीत करती है।
  • फ़ंक्शन Largets(int arr[],int n) सरणी और इसकी लंबाई n को इनपुट के रूप में लेता है और बनाई जा सकने वाली उच्चतम संख्या प्रिंट करता है।
  • चर maxx का उपयोग सबसे अधिक बाएं अंक वाली संख्या को संग्रहीत करने के लिए किया जाता है, 0 से आरंभ।
  • Pos का उपयोग maxx के इंडेक्स को संग्रहीत करने के लिए किया जाता है।
  • i=0 से n तक शुरू करके प्रत्येक arr[i] का सबसे बायां अंक 10 से विभाजित करके ढूंढें जब तक यह 0 न हो जाए। हर बार शेष इकाई स्थान पर अंक को दर्शाएगा।
  • यदि वर्तमान ऐसा अंक सबसे अधिक है, जब num==0, (मतलब rem में सबसे बायां अंक है), तो maxx और pos अपडेट करें।
  • इंडेक्स pos से सरणी के अंत तक तत्वों को प्रिंट करें और फिर इंडेक्स 0 से pos-1 तक।

उदाहरण कोड

#include <bits/stdc++.h> using namespace std; void Largest(int arr[], int n){ int maxx = 0; int pos = 0; //सबसे अधिक बाएं अंक वाली संख्या का इंडेक्स for (int i = 0; i < n; i++) { int num = arr[i]; // अंतिम अंक की जांच करें while (num!=0) { int rem = num % 10; num = num / 10; if (num == 0) { if (maxx < rem) { maxx = rem; pos = i; } } } } // सबसे बड़ी संख्या प्रिंट करें cout<<"संयोजन द्वारा सबसे बड़ी संख्या: "; for (int i = pos; i < n; i++) cout << arr[i]; for (int i = 0; i < pos; i++) cout << arr[i]; } int main(){ int Arr[] = { 12,34,56,98 }; int size=4; Largest(Arr,size); return 0; }

आउटपुट

संयोजन द्वारा सबसे बड़ी संख्या: 98123456

  1. - ऐरे में अभाज्य संख्या K खोजें जैसे कि (A[i] % K) अधिकतम हो C++ में

    मान लीजिए हमारे पास n पूर्णांकों के साथ एक ऐरे A है। हमें एक तत्व K खोजना है जैसे कि K अभाज्य हो, और सभी वैध i के लिए सभी संभावित K मानों में A[i] mod K अधिकतम हो। यदि ऐसी कोई संख्या नहीं मिलती, तो -1 वापस करें। उदाहरण के लिए, यदि A = [2, 10, 15, 7, 6, 8, 13], तो आउटपुट 13 होगा। तीन अभाज्य संख्याएं

  1. - C++ प्रोग्राम: सरणी में प्रत्येक तत्व के लिए निकटतम बड़ा मान ज्ञात करना

    यहां हम देखेंगे कि सरणी में प्रत्येक तत्व के लिए निकटतम मान कैसे ज्ञात करें। यदि किसी तत्व x का अगला तत्व जो उससे बड़ा है, और सरणी में भी मौजूद है, तो वह उस तत्व का बड़ा मान होगा। यदि तत्व मौजूद नहीं है, तो -1 लौटाएं। मान लें सरणी तत्व [10, 5, 11, 6, 20, 12] हैं, तो बड़े तत्व [11, 6, 12, 10, -1, 20]

  1. - C++ प्रोग्राम: सरणी में प्रत्येक तत्व के लिए निकटतम बड़ा मान ज्ञात करना

    यहां हम देखेंगे कि सरणी में प्रत्येक तत्व के लिए निकटतम बड़ा मान कैसे ज्ञात करें। यदि किसी तत्व x का अगला तत्व जो उससे बड़ा है, और सरणी में भी मौजूद है, तो वह उस तत्व का बड़ा मान होगा। यदि तत्व मौजूद नहीं है, तो -1 लौटाएं। मान लें सरणी तत्व [10, 5, 11, 6, 20, 12] हैं, तो बड़े तत्व [11, 6, 12, 10, -1