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

C++ में संख्या रेखा पर देखे गए विशिष्ट बिंदुओं की गणना करें


हमें 0 और 1 का एक बाइनरी अनुक्रम दिया गया है। साथ ही मान लें कि एक व्यक्ति current_pos में संग्रहीत स्थिति या बिंदु पर बैठा है। अब current_pos से शुरू करके, यदि बाइनरी अनुक्रम में 0 है तो वह एक कदम बाएं चलता है (current_pos - 1)। यदि यह 1 है तो वह एक कदम दाएं चलता है (current_pos + 1)। लक्ष्य पूरे बाइनरी अनुक्रम के पूरा होने के बाद उसके द्वारा देखे गए विशिष्ट स्थितियों या बिंदुओं को ढूंढना है।

हम इसे किसी बिंदु पर जाने की संख्या का उपयोग करके हल करेंगे। यदि आवृत्ति शून्येतर है, तो विशिष्ट बिंदुओं की गणना बढ़ाएं।

इनपुट

Path[]= "001100" current_pos=3

आउटपुट

संख्या रेखा पर देखे गए विशिष्ट बिंदु: 3

व्याख्या: पथ[0] और स्थिति 3 से शुरू करके।

पथ[0]: 0 → बाएं चलें ...currpos=2 पथ[1]: 0 → बाएं चलें ...currpos=1 पथ[2]: 1 → दाएं चलें ...currpos=2 पथ[3]: 1 → बाएं चलें ...currpos=3 पथ[4]: 0 → बाएं चलें ...currpos=2 पथ[5]: 0 → बाएं चलें ...currpos=1

कुल विशिष्ट स्थितियां 3 हैं, जो 1,2,3 हैं।

इनपुट

Path[]= "010101" current_pos=5

आउटपुट

संख्या रेखा पर देखे गए विशिष्ट बिंदु: 2

व्याख्या: पथ[0] और स्थिति 5 से शुरू करके।

पथ[0]: 0 → बाएं चलें ...currpos=4 पथ[1]: 1 → दाएं चलें ...currpos=5 पथ[2]: 0 → बाएं चलें ...currpos=4 पथ[3]: 1 → दाएं चलें ...currpos=5 पथ[4]: 0 → बाएं चलें ...currpos=4 पथ[5]: 1 → दाएं चलें ...currpos=5

कुल विशिष्ट स्थितियां 2 हैं, जो 4 और 5 हैं।

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

  • 0 और 1 का स्ट्रिंग पथ में संग्रहीत है।
  • current_pos प्रारंभिक बिंदु संग्रहीत करता है।
  • फ़ंक्शन getDistinctPoints(int current_pos, string path) वर्तमान स्थिति और पथ को इनपुट के रूप में लेता है और विशिष्ट स्थितियों/बिंदुओं की संख्या लौटाता है।
  • चर len पथ की लंबाई संग्रहीत करता है।
  • सरणी frequency[21] का उपयोग किसी बिंदु पर जाने की संख्या को संग्रहीत करने के लिए किया जाता है। इंडेक्स बिंदु को दर्शाता है। कुल 0-20।
  • पथ स्ट्रिंग को पार करना शुरू करें।
  • यदि वर्तमान मान 0 है, तो बाएं चलें (current_pos -1)। इस बिंदु की आवृत्ति अपडेट करें frequency[current_pos]++।
  • अन्यथा वर्तमान मान 1 है, तो दाएं चलें (current_pos +1)। इस बिंदु की आवृत्ति अपडेट करें frequency[current_pos]++।
  • अब आवृत्ति सरणी को पार करें और प्रत्येक शून्येतर मान के लिए। गणना बढ़ाएं।
  • Count में देखे गए विशिष्ट बिंदु होते हैं।
  • वांछित परिणाम के रूप में count लौटाएं।

उदाहरण कोड

#include <bits/stdc++.h> using namespace std; // 0 से 20 के बीच विशिष्ट बिंदु int getDistinctPoints(int current_pos, string path){ // पथ की लंबाई int len = path.length(); int count=0; // किसी बिंदु पर जाने की संख्या संग्रहीत करने के लिए सरणी int frequency[21]={0}; // पथ में सभी दिशाओं के लिए for (int i = 0; i < len; i++) { // बाएं दिशा के लिए if (path[i] == '0') { current_pos--; frequency[current_pos]++; // विज़िट काउंट बढ़ाएं } // यदि दिशा दाएं है else { current_pos++; frequency[current_pos]++; // विज़िट काउंट बढ़ाएं } } for(int i=0;i<21;i++) if(frequency[i]!=0) // यदि देखा गया तो frequency[i] शून्येतर है count++; return count; } int main(){ int current_pos = 3; string path = "011101100"; cout << "संख्या रेखा पर देखे गए विशिष्ट बिंदुओं की संख्या:<<(getDistinctPoints(current_pos, path)); return 0; }

आउटपुट

संख्या रेखा पर देखे गए विशिष्ट बिंदुओं की संख्या: 5

  1. OpenCV में C++ का उपयोग करके कुल फ्रेम की संख्या गिनें OpenCV में C++ का उपयोग करके कुल फ्रेम की संख्या गिनें

    हम सीखेंगे कि OpenCV में कुल फ्रेम की संख्या कैसे गिनें। OpenCV का उपयोग करके, वीडियो के कुल फ्रेम की संख्या को गिनना और दिखाना प्राथमिक है। हालांकि, आपको एक बात ध्यान में रखनी होगी कि हम वास्तविक समय वीडियो के कुल फ्रेम की संख्या नहीं गिन सकते। क्योंकि वास्तविक समय वीडियो में फ्रेम की एक विशिष्ट सं

  1. C++ में उन नोड्स को गिनना जिनका योग X के साथ फाइबोनैचि संख्या है C++ में उन नोड्स को गिनना जिनका योग X के साथ फाइबोनैचि संख्या है

    नोड्स के वजन वाली एक बाइनरी ट्री दी गई है। लक्ष्य उन नोड्स की संख्या ढूंढना है जिनके वजन ऐसे हैं कि संख्या एक फाइबोनैचि संख्या है। फाइबोनैचि श्रृंखला में संख्याएं हैं: 0, 1, 1, 2, 3, 5, 8, 13... nth संख्या (n-1)th और (n-2)th का योग है। यदि वजन 13 है तो यह एक फाइबोनैचि संख्या है इसलिए नोड गिना जाएगा।

  1. C++ में एक चाल में बिशप द्वारा देखे जा सकने वाले वर्गों की कुल संख्या गिनें C++ में एक चाल में बिशप द्वारा देखे जा सकने वाले वर्गों की कुल संख्या गिनें

    समस्या विवरण एक शतरंज बोर्ड जिसे 8x8 ग्रिड के रूप में दर्शाया गया है, हमें बिशप की स्थिति पंक्ति और कॉलम के रूप में दी गई है। लक्ष्य उन वर्गों की कुल संख्या ज्ञात करना है जिन्हें बिशप एक चाल में देख सकता है। हम जानते हैं कि बिशप सभी दिशाओं में चल सकता है (विकर्ण रूप से बाएं ऊपर/नीचे और दाएं ऊपर/नीच