কম্পিউটার টিউটোরিয়াল

সি-তে n বিট বাইনারি সংখ্যা যেন দুই অর্ধেকের যোগফল সমান


n বিট বাইনারি সংখ্যা জেনারেট করতে হবে যেন বাম এবং ডান অর্ধেকের ১-দের যোগফল সমান হয়।

অ্যালগরিদম

genAllBinEqualSumHalf(n, left, right, diff)

Begin if n==0: if diff==0 print left+right return if n==1: if diff==0 print left+0+right, left+1+right return if 2*|diff| <= n then if left not empty: gen(n-2, left+0, right+0, diff) gen(n-2, left+0, right+1, diff-1) gen(n-2, left+1, right+0, diff+1) gen(n-2, left+1, right+1, diff) end if End

উদাহরণ

#include <bits/stdc++.h> using namespace std; void genAllBinEqualSumHalf(int n, string left="", string right="", int di=0) { ... } main() {    int n = 5;    genAllBinEqualSumHalf(n); }

আউটপুট

100001 100010 101011 110011 100100 101101 101110 110101 110110 111111

  1. বাইনারি ট্রিতে সকল ডান পাতা নোডের যোগফল বের করা C++-এ

  2. বাইনারি ট্রিতে সকল বাম পাতা নোডের যোগফল বের করা C++-এ

  3. C++-এ সব সম্ভব ফুল বাইনারি ট্রি

  4. C++-এ বাইনারি ট্রির সব লিফ নোড ডান থেকে বাম প্রিন্ট করা