生活随笔
收集整理的這篇文章主要介紹了
【深搜】01串
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
01串
Description
用n個0和n個1排成一個2n位的二進制數,要求從最高位起到任意一位,0的個數不能少于1的個數。編程求出所有符合條件的2n位二進制數。
如n=3時,符合條件的共有5個:
000111
001011
001101
010011
010101
你的任務是輸入一個數N(N<=15)輸出符合條件的2N位二進數的個數。
Sample Input
3
Sample Output
5
符合條件的數是
000111
001011
001101
010011
010101
思路:
用深搜枚舉填法,符合條件時記錄
#include<cstdio>
#include<iostream>
using namespace std
;
int n
,n1
,n0
,z
;
void js(int x
)
{if (x
>n
*2){z
++;return;}if (n0
<n
){n0
++;js(x
+1);n0
--;}if (n0
>n1
){n1
++;js(x
+1);n1
--;}
}int main()
{scanf("%d",&n
);js(1);printf("%d",z
);
}
總結
以上是生活随笔為你收集整理的【深搜】01串的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。