我对我的剧本感到有点麻烦,我希望有人可以帮忙,我有一种感觉,我错过了一些简单的东西,但另一双眼睛会很棒。
代码如下:
sumOfTwoCubes(91);
function sumOfTwoCubes($number) {
var cube;
var limit;
var i, j, k;
cube = $number;
limit = Math.ceil(Math.exp(Math.log(cube) / 3));
for (i = 1; i <= limit; i++) {
for (j = 1; j <= limit; j++) {
k = i * i * i + j * j * j;
if (k == cube) {
var out = "True";
} else {
var out = "False";
}
}
}
document.getElementById("result").innerHTML = out;
}
&#13;
<p id="result"></p>
&#13;
答案 0 :(得分:2)
你可以这样做。
function sumOfTwoCubes($number)
{
var cube;
var limit;
var i, j, k;
cube = $number;
limit = Math.ceil(Math.exp(Math.log(cube)/3));
for(i = 1; i <= limit; i++){
for(j = 1; j <= limit; j++){
k = i * i * i + j * j * j;
if(k == cube){
return document.getElementById("result").innerHTML = "TRUE";
}
}
}
return document.getElementById("result").innerHTML = "False";
}
sumOfTwoCubes(91);
<p id="result"></p>
答案 1 :(得分:0)
您需要做的就是在找到正确答案时结束循环!
sumOfTwoCubes(91);
function sumOfTwoCubes($number)
{
var cube;
var limit;
var i, j, k;
var out = "False";
cube = $number;
limit = Math.ceil(Math.exp(Math.log(cube)/3));
for(i = 1; i <= limit; i++){
for(j = 1; j <= limit; j++){
k = i * i * i + j * j * j;
if(k == cube){
var out = "True";
break;
}
}
if (out == "True")
break;
}
document.getElementById("result").innerHTML = out;
}
现在它显示"True"
!
我所做的就是:
- 在k == cube
时添加了休息时间,因此它将离开内部for
- 添加了if (out == "True") break;
,因此如果out
为"True"
,它将结束您的循环,您会在"True"
元素内看到result
消息!