【发布时间】:2020-12-08 00:55:53
【问题描述】:
需要一些关于 R 任务第二部分算法的建议。
输入两个给定的正整数 N 和 R 找到所有 N 位二进制数 R 每个数字的最大游程长度,同一数字在一个连续的数字中连续出现的次数。
对于等于 2 的 R,2 是数字表示法中最多可以出现在一行中的数字 0(下一个应该是数字 1)。数字 1 序列也是如此。
N 不能大于 64。 输出可以不排序
输入
N = 5 R = 1
output:
1
10
101
1010
10101
Total: 5
input:
N = 4, R = 2
output:
1
11
110
1100
1101
10
100
1001
101
1011
1010
Total: 11
input:
N = 12, R = 6
output:
1
11
111
1111
11111
111111
1111110
11111100
111111000
1111110000
11111100000
111111000000
111111000001
11111100001
...
101010101011
101010101010
Total: 3903
【问题讨论】:
-
您的示例答案似乎与您的问题陈述不匹配——它们包含少于 N 位的数字,并且不包含任何前导 0 数字的序列。对于您的 N=5/R=1 示例,应该只有 2 个答案:
10101和01010。 -
(如果您认为较短的序列具有前导 0,则它们通常有太多连续的 0)
标签: algorithm