前言:锻炼自己的思想,规范自己的编程思路。
问题:
给你一个正整数 n ,找出满足下述条件的 中枢整数 x :
1 和 x 之间的所有元素之和等于 x 和 n 之间所有元素之和。 返回中枢整数 x 。如果不存在中枢整数,则返回 -1 。题目保证对于给定的输入,至多存在一个中枢整数。
示例:(放代码里面)
输入:n = 8
输出:6
解释:6 是中枢整数,因为 1 + 2 + 3 + 4 + 5 + 6 = 6 + 7 + 8 = 21 。
思路:
函数名为 pivotInteger ,它接受一个参数 n,并返回一个数字。
该函数使用两个嵌套循环来计算两个结果:resultA 和 resultB。
外层循环从 1 到 n 遍历变量 X。对于每个 X 值,内层循环分别计算两个结果。
第一个内层循环从 1 到 X 遍历变量 i,并将每个 i 值累加到 resultA 中。
第二个内层循环从 n 到 X 遍历变量 j,并将每个 j 值累加到 resultB 中。
如果在某次迭代中,resultA 等于 resultB,则函数返回当前的 X 值。如果在整个外层循环结束后都没有找到这样的 X 值,则函数返回 -1。
总之,这个函数试图找到一个数字 X,使得 1 到X 的和等于 X 到 n 的和。如果找到了这样的数字,则返回它;否则返回 -1。
基于上述思考,代码如下:
/**
* @param {number} n
* @return {number}
*/
var pivotInteger = function(n) {
for(let X = 1;X<=n;X++){
resultA = 0;
resultB = 0;
for(let i = 1;i <= X;i++){
resultA += i
}
for(let j = n;j >= X;j--){
resultB += j
}
if(resultA === resultB) return X
}
return -1
};
执行结果如下图:
巩固知识点:
在循环中使用 return 语句可以提前结束函数。当程序执行到 return 语句时,它会立即退出当前函数,并返回指定的值(如果有的话)。
这种技术通常用于在循环中检查某个条件是否满足,如果满足则立即结束函数并返回结果。例如,在搜索算法中,当找到目标元素时,可以使用return 语句来立即结束搜索并返回结果。