对数整数解释

问题描述 投票:0回答:1

我在网络上发现的一个问题,希望社会上有谁能详细解释一半。这个问题是这样的

给定一个N个整数,正,如果能画成两个或两个以上的连续整数之和,返回true(10=1+2+3+4),如果不能,返回false。

而这是我找到的答案

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

我以前从来没有来过Ln或Le是什么意思,所以经过研究我明白了,如果一个数可以拆成Log2(8=3因此8=2*2*2)就不能按照要求来表达(没有连号)。但我不明白为什么 "这个数字不是整数" (boolean)的东西。不应该检查相反的吗?Number一直真正是一个Integer?请记住,我是在尝试理解答案,而不是试图改进它或使它更加花哨。 先谢谢你的时间和耐心。 将答案完全归功于GIDEO。

javascript math integer logarithm
1个回答
1
投票

这样的一个数叫做 客套话. 众所周知,无礼数正好是2的幂。

现在,一个数字 n 是2的幂,如果且仅如果 log2(n) 是一个整数,因为 log2(2^k) = k.

© www.soinside.com 2019 - 2024. All rights reserved.