C語言遞歸窮舉n位m進制數字(回溯)

Problem B

窮舉n位二進制數

時限:100ms 內存限制:10000K 總時限:300ms

描述:

輸入一個小於20的正整數n,要求按從小到大的順序輸出所有的n位二進制數,每個數佔一行。

輸入:

輸入一個小於20的正整數n。

輸出:

按從小到大的順序輸出所有的n位二進制數,每個數佔一行。

輸入樣例:

3

輸出樣例:

000 001 010 011 100 101 110 111

#include<stdio.h> int n,a[100]; void search(int m); void output(); int main() { scanf("%d",&n); search(0); return 0; } void search(int m) { int i; if(m==n)output(); else  { for(i=0;i<2;i++)//若將i<2改爲i<m,則可輸出n位m進制數字 { a[m]=i; search(m+1); } } } void output() { for(int i=0;i<n;i++) { printf("%d",a[i]); } printf("\n"); }

發佈了52 篇原創文章 · 獲贊 23 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章