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

C++ में n x m आकार के फर्श को 1 x m टाइलों से टाइल करने के तरीकों की संख्या गिनें


समस्या विवरण

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

उदाहरण

इनपुट

n=3 m=2

आउटपुट

फर्श को टाइल करने के तरीकों की संख्या: 3

व्याख्या

तीन 1x2 टाइलें नीचे दिखाए अनुसार व्यवस्थित होंगी:

C++ में n x m आकार के फर्श को 1 x m टाइलों से टाइल करने के तरीकों की संख्या गिनें

इनपुट

n=3 m=3

आउटपुट

फर्श को टाइल करने के तरीकों की संख्या: 2

व्याख्या

तीन 1x3 टाइलें लंबवत और क्षैतिज रूप से व्यवस्थित। केवल दो तरीके।

दृष्टिकोण

इस दृष्टिकोण में हम n के मान की जांच करते हैं। यदि n, m से कम है और इसका मान 1 है तो 1xm आकार के फर्श पर केवल एक टाइल रखी जाएगी।

यदि n, m के बराबर है तो 2 तरीके होंगे: सभी n 1xm टाइलें लंबवत और सभी क्षैतिज रखना। यदि n, m से बड़ा है तो हम पिछले तरीकों का उपयोग करके तरीकों की गणना करेंगे: ways[n-1] + ways[n-m]।

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

  • फर्श और टाइलों के आयामों के लिए पूर्णांक m और n लें।
  • फंक्शन ways_tile_floor(int N, int M) आयाम लेता है और n x m आकार के फर्श को 1 x m आकार की टाइलों से टाइल करने के तरीकों की संख्या लौटाता है।
  • इंडेक्स i = N के वर्तमान मान के लिए टाइलों की गिनती संग्रहीत करने के लिए लंबाई N+1 की सरणी arr[] लें।
  • arr[0] के लिए टाइलें 0 होंगी। इसलिए arr[0]=0।
  • for लूप का उपयोग करके i=1 से i=N तक arr[] को पार करें। प्रत्येक arr[i] के लिए, यदि i>M तो पिछले मानों का उपयोग करके गिनती की गणना करें: arr[i] = arr[i-1] + arr[i-M]।
  • यदि i=1 या i<M, तो arr[i] को 1 से सेट करें।
  • यदि i=M, तो arr[i]=2 सेट करें।
  • for लूप के अंत में, arr[N] में टाइलों को व्यवस्थित करने के तरीकों की गिनती होगी।
  • परिणाम के रूप में arr[N] लौटाएं।

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

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

int ways_tile_floor(int N, int M) {
    int arr[N + 1];
    arr[0] = 0;
    for (int i = 1; i <= N; i++) {
        if (i > M) {
            arr[i] = arr[i - 1] + arr[i - M];
        } else if (i < M || i == 1) {
            arr[i] = 1;
        } else {
            arr[i] = 2;
        }
    }
    return arr[N];
}

int main() {
    int n = 3, m = 2;
    cout << "फर्श को टाइल करने के तरीकों की संख्या: " << ways_tile_floor(n, m);
    return 0;
}

आउटपुट

फर्श को टाइल करने के तरीकों की संख्या: 3
  1. OpenCV में C++ का उपयोग करके चेहरों की संख्या गिनें OpenCV में C++ का उपयोग करके चेहरों की संख्या गिनें

    छवि में स्थित चेहरों की संख्या गिनना आसान है। पिछले अनुभाग में हमने जो प्रोग्राम लिखा था, उसमें पहले से ही faces.size() में चेहरों की संख्या की जानकारी है। यह कोड faces.size() एक पूर्णांक मान देता है।उदाहरण के लिए, यदि हम int x = faces.size() लिखते हैं, तो x में चेहरों की संख्या होगी।दिए गए छवि से च

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

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

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

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