【发布时间】:2021-06-12 10:30:05
【问题描述】:
我知道这是作弊,但我想知道答案。
我必须编写一个函数,它接受一个奇数,即两个连续完美平方之间的差,然后找到平方。
现在,我的问题是完美正方形的数量必须达到 1,000,000
如果代码执行时间超过12ms,系统将不接受。
重写代码以通过测试的正确方法是什么?
function findSquare(input)
{
let perfectSquare = []
let output
for(let i = 0; i <= 1000000; i++){
perfectSquare = [...perfectSquare, i*i]
}
for(let x = 0; x < perfectSquare.length; x++){
if(perfectSquare[x+1] - perfectSquare[x] === input){
output = `${perfectSquare[x+1]}-${perfectSquare[x]}`
break
}
}
return output
}
findSquare(9)
输出将是“25-16”
【问题讨论】:
-
这个问题来自现场比赛吗?
-
不,只是来自常规 kata
-
连续完美正方形之间的差异很容易推导出来。您可以直接计算答案,无需搜索。
标签: javascript arrays loops