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

C++ में दिए गए आकार के आयत के अंदर संभावित समचतुर्भुजों की संख्या गिनना


हमें ऊंचाई × चौड़ाई आयामों वाला एक आयत दिया गया है। आयत को 2D निर्देशांक प्रणाली पर दर्शाया गया है जिसका निचला-बायाँ कोना बिंदु (0,0) पर है। लक्ष्य इस आयत के अंदर संभावित समचतुर्भुजों की संख्या गिनना है जो निम्न शर्तों को पूरा करते हैं:

  • समचतुर्भुज का क्षेत्रफल 0 से अधिक हो।
  • समचतुर्भुज के विकर्ण x और y अक्ष के समानांतर हों।
  • समचतुर्भुज के सभी कोनों के निर्देशांक पूर्णांक हों।

उदाहरण सहित समझ

इनपुट - लंबाई=3, चौड़ाई=3

आउटपुट - दिए गए आकार के आयत के अंदर संभावित समचतुर्भुजों की संख्या: 4

व्याख्या - नीचे दिए गए चित्र में ऊंचाई=चौड़ाई=3 का आयत है। साथ ही हम क्षेत्रफल >0 और दोनों अक्षों के समानांतर विकर्ण वाले चार समचतुर्भुज देख सकते हैं (पूर्णांक निर्देशांक भी):

पहला: [(1,0), (2,1), (1,2), (0,1)]
दूसरा: [(2,0), (3,1), (2,2), (1,1)]
तीसरा: [(2,1), (3,2), (2,3), (1,2)]
चौथा: [(1,1), (2,1), (1,2), (0,1)]

C++ में दिए गए आकार के आयत के अंदर संभावित समचतुर्भुजों की संख्या गिनना

इनपुट - लंबाई=2, चौड़ाई=3

आउटपुट - दिए गए आकार के आयत के अंदर संभावित समचतुर्भुजों की संख्या: 2

व्याख्या - नीचे दिए गए चित्र में ऊंचाई=2, चौड़ाई=3 का आयत है। साथ ही हम अंदर दो समचतुर्भुज देख सकते हैं।

C++ में दिए गए आकार के आयत के अंदर संभावित समचतुर्भुजों की संख्या गिनना

प्रोग्राम में उपयोग किया गया दृष्टिकोण

गैर-शून्य क्षेत्रफल और पूर्णांक निर्देशांक वाला पहला समचतुर्भुज दाएँ ऊपरी कोने (2,2) से शुरू होगा। इंडेक्स i=j=2 से i<=लंबाई और j<=चौड़ाई तक ट्रैवर्स करना शुरू करें। पूर्णांक निर्देशांकों के लिए सम लंबाई फिक्स करने के लिए i और j को 2 से बढ़ाएँ। इन विकर्णों वाले समचतुर्भुजों की संख्या (ऊंचाई-i+1)×(चौड़ाई-j+1) होगी।

  • लंबाई और चौड़ाई को पूर्णांक के रूप में लें।
  • फंक्शन possible_rhombus(int height, int width) आयत के आयाम लेता है और उन समचतुर्भुजों की संख्या लौटाता है जो आयत के अंदर संभव हैं और सभी उल्लिखित शर्तों का पालन करते हैं।
  • प्रारंभिक गिनती 0 लें।
  • i=2 से i<=लंबाई और j=2 से j<=चौड़ाई तक ट्रैवर्स करें।
  • प्रत्येक i,j के लिए temp_1 = ऊंचाई - i + 1 और temp_2 = चौड़ाई - j + 1 लें।
  • temp_1 * temp_2 को काउंट में जोड़ें।
  • i और j को 2 से बढ़ाएँ (पूर्णांक निर्देशांकों के लिए)।
  • अंत में परिणाम के रूप में काउंट लौटाएँ।

उदाहरण

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

long long possible_rhombus(int height, int width) {
    long long count = 0;
    for (int i = 2; i <= height; i += 2) {
        for (int j = 2; j <= width; j += 2) {
            int temp_1 = height - i + 1;
            int temp_2 = width - j + 1;
            count += temp_1 * temp_2;
        }
    }
    return count;
}

int main() {
    int height = 4, width = 4;
    cout << "Count of number of rhombi possible inside a rectangle of given size are: " << possible_rhombus(height, width);
    return 0;
}

आउटपुट

Count of number of rhombi possible inside a rectangle of given size are: 16
  1. C++ में n x m आकार के फर्श को 1 x m टाइलों से टाइल करने के तरीकों की संख्या गिनें C++ में n x m आकार के फर्श को 1 x m टाइलों से टाइल करने के तरीकों की संख्या गिनें

    समस्या विवरण दो संख्याएं n और m दी गई हैं जो कमरे के फर्श की लंबाई और चौड़ाई दर्शाती हैं। लक्ष्य उन तरीकों की संख्या गिनना है जिनसे इस फर्श को 1xm आकार की टाइलों का उपयोग करके टाइल किया जा सकता है। उदाहरण इनपुट n=3 m=2 आउटपुट फर्श को टाइल करने के तरीकों की संख्या: 3 व्याख्या तीन 1x2 टाइलें नीचे दि

  1. ग्रिड में दी गई दिशा में संभावित चालों की गणना करने का C++ प्रोग्राम ग्रिड में दी गई दिशा में संभावित चालों की गणना करने का C++ प्रोग्राम

    समस्या विवरण हमें n x m आकार का ग्रिड और प्रारंभिक बिंदु (x, y) दिया गया है। साथ ही चालों/कदमों के जोड़े दिए गए हैं जैसे (1,1), (2,2) आदि। प्रत्येक जोड़ा x और y अक्ष में कदम की इकाइयों को दर्शाता है। लक्ष्य ग्रिड की सीमाओं [1,n] x [1,m] के भीतर ली जा सकने वाली कुल चालों की संख्या ज्ञात करना है। उदा

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

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