【发布时间】:2016-09-26 04:34:36
【问题描述】:
我有一个家庭作业问题,我们应该提出一个递归算法来查找从 0 开始的 n 位二进制数的七个排列(例如,如果 n=4,则起始数是 0000)。规则是对数字进行尽可能小的更改,一次仅更改 1 位,并获得尽可能小的十进制结果。
根据规则,第一个排列是 0001(十进制 1),第二个排列是 0011(十进制 3),第三个排列是 0010,依此类推。
我在问题中得到的排列如下:
1. 0000 = 0
2. 0001 = 1
3. 0011 = 3
4. 0010 = 2
5. 0110 = 6
6. 0100 = 4
7. 0101 = 5
我知道并理解递归是如何工作的,但我只能做简单的(数字序列、阶乘、排列等),我不知道如何提出递归算法,有人可以请吗帮忙?
【问题讨论】:
-
你有没有尝试过?向我们展示你的方法。
-
@jbsu32 很抱歉,我真的没有任何想法:(
标签: algorithm recursion permutation