/***@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;}
慕莱坞森
TA贡献1810条经验 获得超4个赞
用公式1..n(1+n)n/2=sumfunction_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}
添加回答
举报
0/150
提交
取消