小编Ham*_*eem的帖子

在Java中编写函数以查找正整数N的二进制周期

给出了一个由Q个字符组成的非空零索引字符串S。该字符串的周期最小

正整数P使得:

?Q / 2和S [K] = S [K + P]为0?K <Q?P.

例如,“ pepsicopepsicopep”的时间段为7。如果M是N的二进制表示形式的周期,则正整数M是正整数N的二进制周期。

例如,1651的二进制表示形式为“ 110011100111”。因此,其二进制周期为5。另一方面,102没有二进制周期,因为它的二进制表示是“ 1100110”,并且它没有周期。

考虑上述情况,并用Java编写一个函数,该函数将接受整数N作为参数。给定正整数N,函数将返回N的二进制周期。如果N没有二进制周期,则函数应返回?1。

下面,我还提供了我曾为之努力的解决方案,我想知道是否还有其他更好的解决方案?

java binary bit-manipulation

0
推荐指数
1
解决办法
1万
查看次数

标签 统计

binary ×1

bit-manipulation ×1

java ×1