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

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


समस्या विवरण

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

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

उदाहरण

इनपुट

row = 5, column = 4

आउटपुट

बिशप द्वारा देखे जा सकने वाले वर्गों की संख्या: 13

व्याख्या

ऊपर दिखाए गए चित्र के अनुसार बिशप द्वारा कवर किए जा सकने वाले वर्ग 9 हैं।

इनपुट

row = 1, column = 1

आउटपुट

बिशप द्वारा देखे जा सकने वाले वर्गों की संख्या: 7

व्याख्या

चूंकि यह कोने की स्थिति है, बिशप केवल एक विकर्ण को कवर कर सकता है जिसमें अधिकतम 7 वर्ग हो सकते हैं।

दृष्टिकोण

इस दृष्टिकोण में हम क्षैतिज और ऊर्ध्वाधर अधिकतम और न्यूनतम वर्ग स्थिति का उपयोग करके विकर्ण वर्गों की गणना करेंगे।

एल्गोरिदम चरण

  • बिशप की स्थिति के लिए पूर्णांक row और column लें।
  • फंक्शन squares_visited(int first, int second) बिशप की स्थिति लेता है और एक चाल में उसके द्वारा देखे जा सकने वाले वर्गों की संख्या लौटाता है।
  • प्रारंभिक गिनती 0 लें।
  • बाएं स्थिति का न्यूनतम, पंक्ति या कॉलम स्थिति में से न्यूनतम - 1 है।
  • बाएं स्थिति का अधिकतम, 8 - पंक्ति या 9-कॉलम स्थिति में से अधिकतम है।
  • दाएं स्थिति का न्यूनतम, पंक्ति या 9-कॉलम स्थिति में से न्यूनतम - 1 है।
  • दाएं स्थिति का अधिकतम, 8 - पंक्ति या कॉलम स्थिति में से अधिकतम है।
  • कुल वर्ग उपरोक्त गणना की गई स्थितियों का योग होंगे।
  • परिणाम के रूप में गिनती लौटाएं।

C++ कोड उदाहरण

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

int squares_visited(int first, int second) {
    int count = 0;
    int min_left = min(first, second) - 1;
    int max_left = 8 - max(first, 9 - second);
    int max_right = 8 - max(first, second);
    int min_right = min(first, 9 - second) - 1;
    count = min_left + min_right + max_right + max_left;
    return count;
}

int main() {
    int row = 3, column = 3;
    cout << "बिशप द्वारा देखे जा सकने वाले वर्गों की संख्या: " << squares_visited(row, column);
    return 0;
}

आउटपुट

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

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

  1. C++ में आयत में वर्गों की संख्या गिनना C++ में आयत में वर्गों की संख्या गिनना

    =B। लक्ष्य LxB आकार के आयत में समायोजित किए जा सकने वाले वर्गों की संख्या ढूंढना है। उपरोक्त आकृति 3x2 आकार के एक आयत को दर्शाती है। इसमें 2, 2x2 वर्ग और 6, 1x1 वर्ग हैं। कुल वर्ग = 6+2=8। LxB आकार के हर आयत में L*B संख्या के 1x1 वर्ग होते हैं। सबसे बड़े वर्ग BxB आकार के होते हैं। L=B=1 के लिए, वर

  1. C++ में समकोण समद्विबाहु त्रिभुज में फिट होने वाले वर्गों की अधिकतम संख्या C++ में समकोण समद्विबाहु त्रिभुज में फिट होने वाले वर्गों की अधिकतम संख्या

    दिया गया कार्य भुजा a वाले वर्गों की अधिकतम संख्या ढूंढना है जो आधार s वाले दिए गए समकोण समद्विबाहु त्रिभुज (An isosceles triangle has at least 2 equal sides) के अंदर फिट हो सकते हैं। उदाहरण इनपुट s=5, a=1 आउटपुट 10 व्याख्या - आधार में वर्गों की संख्या की गणना s को a से विभाजित करके और 1 घटाकर क