为了账号安全,请及时绑定邮箱和手机立即绑定

验证一个数是否是连续自然数的和

验证一个数是否是连续自然数的和

慕斯709654 2019-04-07 11:18:46
/***@Input:positiveinteger*@Output:trueif@Inputisequalto*sumofallintegersfrom1uptosomen,*falseotherwise**@Example:*isSum(10)=trueas10=1+2+3+4,*isSum(14)=false*/functionisSum(value){vari=1;while(value>0){value-=i;i++;}if(!value){returntrue;}returnfalse;}这个function有问题吗?有没有更好的实现方法?
查看完整描述

2 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

functionisSum(value){
returnMath.floor(Math.sqrt(value*2))*(Math.floor(Math.sqrt(value*2))+1)/2==value;
}
                            
查看完整回答
反对 回复 2019-04-07
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

用公式
1..n
(1+n)n/2=sum
function_is(num)
{
result=false;
for(i=0;i((i+1)*i)/2=sum
if(sum==num){
result=true;
break;
}
if(sum>num){
result=false;
break
}
}
returnresult
}
                            
查看完整回答
反对 回复 2019-04-07
  • 2 回答
  • 0 关注
  • 347 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信