修改 對以前的答案的改正
以前是二進位制的遞增 答案要求是格雷碼
只需要將輸出的方式更改一下即可
題目**
看了這位博主的部落格,這道程式設計題給大家分享一下
給乙個數n,列舉所有n位二進位制的數。
要求:1)不能有重複和遺漏的。
2)相鄰的數只能有一位不同。
題目很少,但考察了函式遞迴的方法
下面是原博主的思路:
思路:不妨用q(2)表示2位二進位制數的情況。列舉如下:
那麼q(3)的規律是0加上q(2)的正序,和1加上q(2)的倒序,列舉如下
000001
011010
110111
101基於這個思想可以用遞迴解決編碼問題。
我認為這種還是有些難以實現與理解
下面談談我的思路
對於每一位二進位制都只有0,1兩種可能
例如n=2
那麼有
0 0
1 0
1 1如此遞迴便比較好理解了,而且恰好是按大小列印
參考源**如下,是c語言寫的
//二進位制遞增
#includeint mid[1000] = ;
void fun(int,int);
int main()
return 0;
}void fun(int n,int n)
printf("\n");
return;
} mid[n - 1] = 0;
fun(n - 1,n);
mid[n - 1] = 1;
fun(n - 1,n);
}
·正確解答
#include#includeint mid[1000] = ;
void fun(int,int);
int main()
system("pause");
return 0;}
void fun(int n,int n)
printf("\n");
return;
} mid[n - 1] = 0;
fun(n - 1,n);
mid[n - 1] = 1;
fun(n - 1,n);
}
對於c語言遞迴,這裡在分享一道題目(上個學期老師讓我們做的c語言題目)
描述
計算n個不同整數的所有的組合
輸入
第1行是乙個整數m,表示隨後有m組資料。
每組資料佔一行,第乙個整數n表示隨後有n個不同的整數。
輸出
對每組資料,輸出這n個不同整數的不同組合,含空組合。每個組合輸出前輸出「--> 」。
要求必須按照上課講的遞迴方法來寫,先輸出包含該元素的情況,再輸出不包含的情況,這樣才能保證輸出順序和標準答案一致。
樣例
輸入輸出
2 1 2
3 1 2 3
--> 1 2
--> 1
--> 2
--> 1 2 3
--> 1 2
--> 1 3
--> 1
--> 2 3
--> 2
--> 3
希望大家一起交流啊
一道程式設計題
題目要求 1 自己給定乙個集合 元數個數不得少於10個 2 讓使用者任一輸入乙個整數 3 根據使用者輸入的整數,移除集合中相應的元素 請根據示例找出元素移除的規律 4 運算結束後,集合中所有元素均被移除 示例 集合元素為 a b c d e f g h i j 使用者輸入的整數為 3 集合元素被移除...
一道程式設計題
程式設計愛好者論壇 有n個學生.每個學生都有自己的宗教信仰,可能相同,也可能不同。乙個調查機構想弄清楚宗教信仰的總數。但是,直接詢問可能會使人不快,於是,調查機構決定詢問m對學生,問他們是否具有相同的宗教信仰。如果相同,則他們會參加同一教會,彼此會認識 要求計算最大可能的宗教數。函式原型 int r...
一道華為程式設計題
1 農場計數問題 20分 問題描述 已知某農場中有一群雞和兔子,總共有m個頭和n隻腳,計算總共有多少雞和兔子 要求實現函式 int getfowlsnum int iheadnum,int ifootnum,int ichickennum,int irabbitnum 輸入 iheadnum 總共頭...