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

C प्रोग्राम में भूलभुलैया में चूहा - बैकट्रैकिंग


समस्या विवरण

भूलभुलैया में चूहा बैकट्रैकिंग का उपयोग करने वाली एक लोकप्रिय समस्या है।

एक भूलभुलैया 2D मैट्रिक्स है जिसमें कुछ सेल अवरुद्ध हैं। उनमें से एक सेल स्रोत सेल है, जहां से हमें शुरू करना है। और दूसरा गंतव्य है, जहां हमें पहुंचना है। हमें किसी भी अवरुद्ध सेल में जाए बिना स्रोत से गंतव्य तक एक पथ ढूंढना है।

उदाहरण

इनपुट: maze[][] = { {0,1,0,1,1}, {0,0,0,0,0}, {1,0,1,0,1}, {0,0,1,0,0}, {1,0,0,1,0} }
आउटपुट: 
1 0 0 0 0
1 1 1 1 0
0 0 0 1 0
0 0 0 1 1
0 0 0 0 1

C++ प्रोग्राम उदाहरण

#include <iostream>
using namespace std;
#define SIZE 5

int maze[SIZE][SIZE] = {
    {0,1,0,1,1},
    {0,0,0,0,0},
    {1,0,1,0,1},
    {0,0,1,0,0},
    {1,0,0,1,0}
};

int solution[SIZE][SIZE];

void printsolution() {
    for(int i = 0; i < SIZE; i++) {
        for(int j = 0; j < SIZE; j++) {
            printf("%d\t", solution[i][j]);
        }
        printf("\n\n");
    }
}

int solvemaze(int r, int c) {
    if((r == SIZE-1) && (c == SIZE-1)) {
        solution[r][c] = 1;
        return 1;
    }
    if(r >= 0 && c >= 0 && r < SIZE && c < SIZE && solution[r][c] == 0 && maze[r][c] == 0){
        solution[r][c] = 1;
        if(solvemaze(r+1, c)) return 1;
        if(solvemaze(r, c+1)) return 1;
        if(solvemaze(r-1, c)) return 1;
        if(solvemaze(r, c-1)) return 1;
        solution[r][c] = 0;
        return 0;
    }
    return 0;
}

int main() {
    for(int i = 0; i < SIZE; i++)
        for(int j = 0; j < SIZE; j++)
            solution[i][j] = 0;
    if (solvemaze(0,0))
        printsolution();
    else
        printf("कोई समाधान नहीं\n");
    return 0;
}
  1. C प्रोग्राम: समानांतर चतुर्भुज की परिधि ज्ञात करना C प्रोग्राम: समानांतर चतुर्भुज की परिधि ज्ञात करना

    समानांतर चतुर्भुज (Parallelogram) क्या है? एक समानांतर चतुर्भुज एक चतुर्भुज है जिसके: विपरीत भुजाएं समानांतर होती हैं विपरीत कोण समान होते हैं विकर्ण एक-दूसरे को द्विभाजित करते हैं परिधि/परिमाप सूत्र यदि भुजाएं a और b हैं, तो: परिधि = 2(a + b) = 2a + 2b उदाहरण भुजा aभुजा bपरिधि 231270.00 16.

  1. C प्रोग्राम: cos(x) श्रृंखला का योग C प्रोग्राम: cos(x) श्रृंखला का योग

    cos(x) श्रृंखला विस्तार कोसाइन फ़ंक्शन का टेलर श्रृंखला विस्तार: cos(x) = Σ (-1)ᵏ × x²ᵏ / (2k)! , k=0 से ∞ तक विस्तारित रूप में: cos(x) = 1 - x²/2! + x⁴/4! - x⁶/6! + x⁸/8! - ... महत्वपूर्ण नोट x रेडियन में होना चाहिए, डिग्री में नहीं। रूपांतरण: रेडियन = डिग्री × π/180 उदाहरण x (डिग्री)पद (n)परि

  1. C में क्रिसमस ट्री प्रोग्राम C में क्रिसमस ट्री प्रोग्राम

    यहां हम एक दिलचस्प समस्या देखेंगे। इस समस्या में हम देखेंगे कि कैसे क्रिसमस ट्री को यादृच्छिक रूप से प्रिंट किया जाए। तो ट्री क्रिसमस ट्री लाइट्स की तरह झिलमिलाएगा। क्रिसमस ट्री प्रिंट करने के लिए, हम विभिन्न आकारों के पिरामिड को एक के नीचे एक प्रिंट करेंगे। सजावटी पत्तियों के लिए दिए गए कैरेक्टर्स