确定需要添加多少个整数(从数字1开始),以使总和大于100?使用JavaScript

确定需要添加多少个整数(从数字1开始),以使总和大于100?使用JavaScript,javascript,Javascript,我试图找到一个解决方案来解决这项任务“确定需要添加多少个整数,从数字1开始,以使总和大于100。”使用JavaScript。 我有我的解决方案,但我倾向于认为它是错误的。 你能帮帮我吗 我甚至不知道我是否正确理解了任务。 请参阅下面我的解决方案: <script> let result = 0; for ( i = 1; i<20; i++){ result+=i; if( result>100) { break } } console.log(i)

我试图找到一个解决方案来解决这项任务“确定需要添加多少个整数,从数字1开始,以使总和大于100。”使用JavaScript。 我有我的解决方案,但我倾向于认为它是错误的。 你能帮帮我吗

我甚至不知道我是否正确理解了任务。 请参阅下面我的解决方案:

<script>

let result = 0;
for ( i = 1; i<20; i++){
  result+=i;
  if( result>100) {
    break
  }
}
console.log(i)

</script>

设结果=0;
对于(i=1;i100){
打破
}
}
控制台日志(i)

输出是14,这是正确的,但我不确定我解决它的方法。

如果它有效,就没有问题
您可以简化它,例如使用
while
而不是
for
循环:

let total=0
让计数=1;
//我们循环直到总数大于或等于100。
而(总数<100){
//将当前计数添加到总数中
总数+=计数;
//增加计数。
计数++;
}
//我们需要考虑最后的++;

console.log(计数-1)
1+2+3+4+…+k
是一个

可以使用和然后解决此问题。
在这里,n是100,x是三角形的底面(在上面的例子中,k是循环中的i)

这是一个问题,使用以下方法解决:

如果我们用它们各自的值替换a b c,我们得到:

x=13.6509716981
x=-14.6509716981
取决于我们使用的符号

如果将
13.6509716981
四舍五入,则得到14,即预期结果

这是用JS编写的
Math.ceil((-1+Math.sqrt(1-4*1*(-2*num)))/2)
num
是要达到的值(在您的示例中为100)

这可以缩短为
Math.ceil((-1+Math.sqrt(1+8*num))/2)

//您的原始代码,作为参考
函数FindNumberUsingLoops(num)
{
设结果=0;
//我修改了循环退出条件,以确保每个案例都能运行
对于(i=1;i=num){
返回i;
}
}
}
函数FindNumber(num)
{
返回Math.ceil((-1+Math.sqrt(1+8*num))/2);
}
log(“使用公式:+FindNumber(100));
log(“使用循环:+FindNumberUsingLoops(100));
log(“使用公式:+FindNumber(500));
log(“使用循环:+FindNumberUsingLoops(500));
log(“使用公式:+FindNumber(42));
log(“使用循环:+FindNumberUsingLoops(42));
log(“使用公式:+FindNumber(1000));
log(“使用循环:+FindNumberUsingLoops(1000));
log(“使用公式:+FindNumber(10000000000000000));
//取消下面的注释,这需要几秒钟来解决

//log(“使用循环:+FindNumberUsingLoops(10000000000000000))你的解决方案是正确的。。。但是,如果您不确定迭代次数,则应该使用while循环。非常感谢您的回复。请你澄清最后一行代码好吗。为什么我们需要在这部分代码中减去一?(console.log(count-1)最后一行代码用于显示输出。我们将从总数中删除一行,因为在退出循环之前,它将增加
count
变量。因此,我们的结果将减少一行。