对数整数解释



我希望社区中的任何人都能详细解释我在网上发现的问题的一半答案。问题如下

给定一个N整数,为正,如果它可以被绘制为两个或多个连续整数(10=1+2+3+4(的和,则返回true,如果不是,则返回false。

这就是我找到的答案

const consecutiveIntegers = (num) => !Number.isInteger( Math.log2(num));

我以前从来没有想过Ln或Le是什么意思,所以经过研究,我明白了如果一个数字可以拆分Log2(8=3,因此8=2*2*2(不能如所要求的那样表达(没有连续的数字(。但我不明白为什么"数字不是整数">(布尔值(。不应该检查相反的情况吗?数字真的是整数吗?请记住,我正在努力理解答案,而不是试图改进或使其更花哨
提前感谢您的时间和耐心
完全归功于GIDEO的回答。

这样的数字被称为礼貌数字。众所周知,不礼貌的数字正是2的幂。

现在,数字n是2的幂,当且仅当log2(n)是整数,因为log2(2^k) = k

相关内容

最新更新