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

सी ++ प्रोग्राम तीन वस्तुओं की जांच करने के लिए परिपत्र रूप से अगला आइटम पसंद करता है या नहीं

मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है। पृथ्वी पर n तल हैं और इनकी संख्या 1 से n तक है। संख्या I वाला तल समतल A[i] पसंद करता है। ए [i]! =मैं। हमें जाँच करनी है कि क्या तीन तल p, q, और r हैं जहाँ p को q पसंद है, q को r पसंद है और r को p पसंद है।

इसलिए, यदि इनपुट ए =[2, 4, 5, 1, 3] जैसा है, तो आउटपुट ट्रू होगा, क्योंकि ट्रिपलेट [2, 4, 1] है।

कदम

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

n := size of A
for initialize i := 0, when i < n, update (increase i by 1), do:
   if A[A[A[i + 1]]] is same as i + 1, then:
      return true
return false

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;

bool solve(vector<int> A) {
   int n = A.size();
   for (int i = 0; i < n; i++) {
      if (A[A[A[i + 1]]] == i + 1) {
         return true;
      }
   }
   return false;
}
int main() {
   vector<int> A = { 2, 4, 5, 1, 3 };
   cout << solve(A) << endl;
}

इनपुट

{ 2, 4, 5, 1, 3 }

आउटपुट

1

  1. यह जांचने के लिए प्रोग्राम कि कोई ऐरे पालिंड्रोम है या C++ में STL का उपयोग नहीं कर रहा है

    एन पूर्णांकों की एक सरणी गिरफ्तारी [एन] को देखते हुए, कार्य यह पता लगाना है कि सरणी एक पैलिंड्रोम है या नहीं। हमें बताए गए कार्य को C++ में STL का उपयोग करके करना है। सी ++ में एसटीएल (स्टैंडर्ड टेम्प्लेट लाइब्रेरी) की एक विशेषता है, यह सी ++ टेम्प्लेट क्लासेस का एक सेट है जो डेटा संरचनाओं और ढेर,

  1. C++ में तीन बिंदु समरेखीय हैं या नहीं, यह जांचने के लिए कार्यक्रम

    तीन अलग-अलग महत्वपूर्ण बिंदुओं के साथ दिया गया है और कार्य यह जांचना है कि बिंदु समरेखीय हैं या नहीं। यदि बिंदु एक ही रेखा पर स्थित हों तो बिंदु संरेख कहलाते हैं और यदि वे भिन्न रेखाओं पर होते हैं तो वे संरेख नहीं होते हैं। नीचे दिए गए समरेखीय और असंरेख बिंदुओं की आकृति है। इनपुट x1 = 1, x2 = 2

  1. C++ प्रोग्राम यह जांचने के लिए कि कोई ग्राफ़ मजबूती से जुड़ा है या नहीं

    निर्देशित ग्राफ़ में घटकों को दृढ़ता से जुड़ा हुआ कहा जाता है, जब एक घटक में प्रत्येक जोड़ी के बीच एक पथ होता है। इस एल्गोरिथम को हल करने के लिए, सबसे पहले, प्रत्येक शीर्ष का अंतिम समय प्राप्त करने के लिए DFS एल्गोरिथ्म का उपयोग किया जाता है, अब ट्रांसपोज़्ड ग्राफ़ का अंतिम समय ज्ञात करें, फिर शी