1 کان ن تائين بائنري نمبر پيدا ڪرڻ جو هڪ دلچسپ طريقو


تڪليف جي سطح وچولو
بار بار پڇڻ ۾ Amazon بيلزابر مهندرا ڪميووا سروس وکر
ماني لاءِ پهرين ڳولا پنگتي حيثيت رکي ٿو

مسئلي جو بيان

مسئلو ”1 کان ن تائين تائين بائنري نمبر ٺاهڻ جو هڪ دلچسپ طريقو“ ٻڌائي ٿو ته توهان کي هڪ نمبر n ڏنو وڃي ٿو ، 1 کان n تائين سڀني نمبرن کي پرنٽ ڪيو بائنري فارم.

مثال

3
1 10 11

 

6
1 10 11 100 101 110

الورورٿم

1 کان n تائين بائنري نمبرن جي نسل کي بائنري وڻ طور ڏسي سگھجي ٿو ، جتي 1 وڻ جي جڙ آھي ۽ ھر نوڊ ۾ 2 ٻار آھن ، کاٻي ٻار کي نمبر جي آخر ۾ '0' شامل ڪندي حاصل ڪيو وڃي ٿو جڏھن ته صحيح ٻار حاصل ڪيو ويو آھي نمبر 1 جي آخر ۾ 'XNUMX' شامل ڪندي. هيٺيون تصوير ڏسو.

1 کان ن تائين بائنري نمبر پيدا ڪرڻ جو هڪ دلچسپ طريقو

پهرين ن بائنري انگ ٺاهڻ لاءِ ، هڪ ڪيو سطح تي اچڻ وارا جو وڻ ۽ پرنٽ پهريون نوڊس.

  1. ق نالي جي تار جو هڪ قطار ٺاهيو. شروعاتي طور تي ھڪڙي متغير ڪريو
  2. پٺي کي “1” قطار ڏانهن ، اهو وڻ جي پاڙ آهي.
  3. جڏهن ته ڪل ن کان گهٽ آهي ، قدم 4 ۽ 5 ٻيهر ورجائي.
  4. هڪ عنصر ٻاهر ڪيو پنگتي حيثيت رکي ٿو، ان کي پرنٽ ڪيو ۽ ان جو کاٻي ٻار (عنصر + “0”) ۽ سا childي ٻار (عنصر + “1”) کي قطار ڏانهن ڌڪيو.
  5. مجموعي طور تي 1 واڌ

وضاحت

ان مثال تي غور ڪريو ته اسان کي 1 کان 6 تائين بائنري نمبر پيدا ڪرڻو آهي.

پهريان اسين اهو وڻ بڻايون ٿا جئين مٿي تصوير ۾ ڏيکاريل آهي ، وڻ جي پاڙ 1 آهي ، ۽ هر نوڊ لاءِ ان جو کاٻي ٻار آهي (نوڊ جي قيمت + “0”) ۽ سا childي ٻار آهي (نوڊ جي قيمت “1”).

وڻ ۾ اسين ڏسي سگھون ٿا ته ٻھڙو عددي نمبر جي بائنري نمائندگي سان تعلق رکي ٿو 1. روٽ جي کاٻي ٻار 2 جي بائنري نمائندگي آھي ، روٽ جي سا childي ٻار 3 جي بائنري نمائندگي آھي. ساڳي طرح ، کا کاٻي بيڊ “ 2 ”4 جي بائنري نمائندگي آهي ، ۽“ 2 ”جي صحيح جوڙ جوڙ 5 ۽ انهي وغيره جي بائنري نمائندگي آهي.

تنهن ڪري نمبرن جي بائنري نمائندگي کي 1 کان 6 تائين پرنٽ ڪرڻ لاءِ ، اسان سڀني کي ڇا ڪرڻو آهي ته وڻ جي پهرين 6 نوڊس کي پرنٽ ڪرڻو پوي ، جيڪا قطار جي ترتيب سان وڻ جي ليول ترتيب سان ڪري سگهجي.

انهي جي ، پيداوار آهي
1 10 11 100 101 110

ڪوڊ

جاوا ڪوڊ 1 کان ن تائين بائنري نمبر ٺاهڻ لاءِ هڪ دلچسپ طريقو

import java.util.LinkedList;
import java.util.Queue;

class AnInterestingMethodToGenerateBinaryNumbersFrom1ToN {
    private static void generateBinaryNumbers(int n) {
        if (n == 0) {
            return;
        }

        // create a queue of strings
        Queue<String> q = new LinkedList<>();
        // push the root to the queue
        q.add("1");

        // initialize total as 0
        int total = 0;

        // while total is less than n
        while (total < n) {
            // remove an element from queue and print it
            String curr = q.poll();
            System.out.print(curr + " ");
            // add the left and right child of curr to the queue
            q.add(curr + "0");
            q.add(curr + "1");
            // increment total
            total++;
        }

        System.out.println();
    }

    public static void main(String[] args) {
        int n1 = 3;
        generateBinaryNumbers(n1);

        int n2 = 6;
        generateBinaryNumbers(n2);
    }
}
1 10 11 
1 10 11 100 101 110

C ++ ڪوڊ 1 کان ن تائين بائنري نمبر ٺاهڻ لاءِ هڪ دلچسپ طريقو

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

void generateBinaryNumbers(int n) {
    if (n == 0) {
        return;
    }
    
    // create a queue of strings
    queue<string> q;
    // push the root to the queue
    q.push("1");
    
    // initialize total as 0
    int total = 0;
    
    // while total is less than n
    while (total < n) {
        // remove an element from queue and print it
        string curr = q.front();
        q.pop();
        cout<<curr<<" ";
        // add the left and right child of curr to the queue
        q.push(curr + "0");
        q.push(curr + "1");
        // increment total
        total++;
    }
    
    cout<<endl;
}

int main() {
    int n1 = 3;
    generateBinaryNumbers(n1);
    
    int n2 = 6;
    generateBinaryNumbers(n2);
    
    return 0;
}
1 10 11 
1 10 11 100 101 110

پيچيدگي تجزيي

وقت جي پيچيدگي

اي (اين) ، جيستائين اسان عناصر کي untilٽو ڪري رهيا آهيون جيستائين اسان پنهنجي مقرر ڪيل حدف عنصر کي نه ڏسندا. اهڙي طرح الگورتھم وقت ۾ سڌريل آھي.

خلائي پيچيدگي

اي (اين) ، جيئن ته اسان عناصر جي ذريعي سفر ڪيو آهي جيڪي حدف عنصر کان گهٽ آهن. اسان انهن عنصرن کي قطارن ۾ وڌائي رهيا آهيون اهڙي طرح خلائي پيچيدگي به سڌي آهي.