佚名通过本文主要向大家介绍了3个连续自然数,连续自然数求和公式,连续自然数,5个连续自然数,连续自然数的平方和等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:验证一个数是否是连续自然数的和
描述:
解决方案1:
描述:
/**
* @Input: positive integer
* @Output: true if @Input is equal to
* sum of all integers from 1 up to some n,
* false otherwise
*
* @Example:
* isSum(10) = true as 10 = 1 + 2 + 3 + 4,
* isSum(14) = false
*/
function isSum(value) {
var i = 1;
while (value > 0) {
value -= i;
i++;
}
if (!value) {
return true;
}
return false;
}
这个function有问题吗?有没有更好的实现方法?
解决方案1:
用公式
1..n
(1 + n ) n / 2 = sum
function _is(num)
{
result = false;
for (i = 0; i < num; i++) {
((i + 1) * i) / 2 = sum
if (sum == num) {
result = true;
break;
}
if (sum > num) {
result = false;
break
}
}
return result
}
解决方案2:function isSum(value) {
return Math.floor(Math.sqrt(value * 2)) * (Math.floor(Math.sqrt(value * 2)) + 1) / 2 == value;
}