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

C++ . में मिरर रिफ्लेक्शन

मान लीजिए कि चार दीवारों में से प्रत्येक पर दर्पणों के साथ एक विशेष वर्गाकार कमरा है। दक्षिण-पश्चिम कोने को छोड़कर प्रत्येक कोने में रिसेप्टर्स होते हैं। इन्हें 0, 1, और 2 के रूप में गिना जाता है। अब वर्गाकार कमरे में लंबाई p की दीवारें हैं, और दक्षिण-पश्चिम कोने से एक लेज़र किरण पहले 0 वें रिसेप्टर से q की दूरी पर पूर्वी दीवार से मिलती है। हमें उस ग्राही की संख्या ज्ञात करनी है जिससे किरण सबसे पहले मिलती है।

तो अगर p =2, और q =1, तो मामला इस तरह होगा -

C++ . में मिरर रिफ्लेक्शन

तो आउटपुट 2 होगा, क्योंकि किरण पहली बार ग्राही 2 से मिलती है, यह पहली बार बाईं दीवार पर वापस परावर्तित हो जाती है।

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

  • जबकि p और q दोनों सम हैं,
    • p :=p/2
    • क्यू:=क्यू/2
  • अगर p सम है, तो 2 लौटाएं
  • यदि q सम है, तो 0 लौटाएं
  • वापसी 1.

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

उदाहरण

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int mirrorReflection(int p, int q) {
      while(p % 2 == 0 && q % 2 == 0){
         p >>= 1;
         q >>= 1;
      }
      if(p % 2 == 0) return 2;
      if(q % 2 == 0) return 0;
      return 1;
   }
};
main(){
   Solution ob;
   cout << (ob.mirrorReflection(2, 1));
}

इनपुट

2
1

आउटपुट

2

  1. C++ में बाइनरी ट्री में दिए गए नोड का दर्पण खोजें

    इस समस्या में हमें एक बाइनरी ट्री दिया जाता है। हमारा कार्य बाइनरी ट्री में किसी दिए गए नोड का दर्पण खोजना है। हमें एक नोड दिया जाएगा, और उस नोड की मिरर इमेज को विपरीत सबट्री में ढूंढा जाएगा। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट आउटपुट mirror of B is E. समाधान दृष्टिकोण समस्या को हल

  1. C++ में 2-डी तल में एक बिंदु की दर्पण छवि खोजें

    इस समस्या में, हमें एक 2-डी तल में एक बिंदु P दिया जाता है और समीकरण ax + by + c =0 के बिंदु a, b, cof दिए जाते हैं। हमारा काम है 2-डी समतल में बिंदु की दर्पण छवि। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट P = (2, 1), a = 1, b = -1, c = 0 आउटपुट (1, 2) स्पष्टीकरण विमान ऐसा दिखता है, समाध

  1. C++ . में रेखा परावर्तन

    मान लीजिए कि हमारे पास 2D तल पर n बिंदु हैं, हमें यह जांचना है कि क्या y-अक्ष के समानांतर कोई रेखा है जो दिए गए बिंदुओं को सममित रूप से दर्शाती है, दूसरे शब्दों में, जांचें कि क्या कोई ऐसी रेखा मौजूद है जो दी गई रेखा पर सभी बिंदुओं को प्रतिबिंबित करने के बाद मूल बिंदुओं का सेट वही होता है जो प्रतिबि