FreeWheel 的一道程式設計題

2021-08-15 16:04:21 字數 1785 閱讀 1405

修改 對以前的答案的改正

以前是二進位制的遞增 答案要求是格雷碼

只需要將輸出的方式更改一下即可

題目**

看了這位博主的部落格,這道程式設計題給大家分享一下

給乙個數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 總共頭...