Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我怎样才能得到从1到给定数字的所有数字相加的倒数呢?_Javascript_Math_Formula - Fatal编程技术网

Javascript 我怎样才能得到从1到给定数字的所有数字相加的倒数呢?

Javascript 我怎样才能得到从1到给定数字的所有数字相加的倒数呢?,javascript,math,formula,Javascript,Math,Formula,我不太清楚该怎么问这个问题。我将尝试解释我要做的事情: 首先,我将把1(始终是1)到一个范围的所有数字相加,比如说10: 让输入=10 释放=0 while(输入>0){ 输出+=输入-- } // 10 + 9 + 8 .... + 2 + 1 = 55 console.log(out)首先,您可以将您的addRange功能简化为,(first+last)*(last/2),因为您总是从1: (x ** 2 + x) / 2 您可以使用高度简化的二次公式来获取唯一的正值(因为您永远不会有负

我不太清楚该怎么问这个问题。我将尝试解释我要做的事情:

首先,我将把
1
(始终是
1
)到一个范围的所有数字相加,比如说
10

让输入=10
释放=0
while(输入>0){
输出+=输入--
}
// 10 + 9 + 8 .... + 2 + 1 = 55

console.log(out)
首先,您可以将您的
addRange
功能简化为,
(first+last)*(last/2)
,因为您总是从1:

(x ** 2 + x) / 2
您可以使用高度简化的二次公式来获取唯一的正值(因为您永远不会有负值):

const addRange=x=>(x**2+x)/2
常量逆=x=>Math.sqrt(1+8*x)/2-0.5
控制台日志(addRange(10))

console.log(inverse(55))
谢谢,您能解释一下它是如何工作的吗?看起来很random@Nuggets:即使没有数学(如您的
addRange
)解决方案,也可以通过非常相同的方式完成:
const inverseRange=x=>{let c=0,steps=0;while((c+++steps),尽管上述方法显然更好。请阅读提供的链接,了解如何正确求解
addRange
对于理解上述解决方案至关重要。@Nuggets现在添加了一个解释:)@RaymondChen哇,你说得对,我现在就编辑这些:)我将完成平方运算,而不是使用二次公式:x^2+x=2N=>x^2+x+1/4=2N+1/4=>(x+1/2)^2=2N+1/4=>x+1/2=sqrt(2N+1/4)=>x=sqrt(2N+1/4)-1/2我投票结束这个问题,因为它实际上是一个数学问题(寻找公式)。一旦你有了这个公式,我们可以帮你把它转换成计算机程序。