不了解循环

问题描述

我需要使用for循环找到完美立方体的立方体根,但是我不知道为什么我的代码无法正常工作:

let objectWithArr = {};
const key = "Words";

function increaseCount(key,value) {
  (objectWithArr[key] = objectWithArr[key] || []).push(value);
}

increaseCount(key,"Entry 1");
console.log(objectWithArr);
increaseCount(key,"Entry 2");
console.log(objectWithArr);

如果输入数字8(例如),它将打印出来:

n = int(input('n = '))
for guess in range(0,n+1):
    if guess**3 != n:
        guess = guess + 1
    if guess**3 == n:
        print(guess,'is the cube root of',n)
    if guess**3 != n:
        print("not a perfect cube")

我想知道是否有人可以帮助我意识到我在做错什么。

解决方法

n **(1/3)也会为您提供n的立方根。

您的代码可以通过以下方式进行改进:

    n = int(input('n = '))
    for guess in range(0,n+1):
        if guess**3 == n:
            print(guess,'is the cube root of',n)
            break
    else:
        print("not a perfect cube")

您不需要guess = guess + 1

,

您是要写这个吗?

n = int(input('n = '))
for guess in range(1,n + 1):
    if guess ** 3 == n:
        print(guess,n)
        break
else:
    print("not a perfect cube")

正如已经指出的,拥有for guess in range(...):的原因是让for 循环为您增加guess

我已将失败案例移至else:循环的for子句中。

,

range循环中使用for将使guess递增。您可以删除此内容:

    if guess**3 != n:
        guess = guess + 1

您不想检查它是否不是每个guess的理想立方体。您已经了解了所有guess后,这并不是一个完美的立方体。因此,这种逻辑需要在for循环之后发生。

    if guess**3 != n:
        print("not a perfect cube")

我将root存储在变量中并进行检查。

n = int(input('n = '))
root = -1;
for guess in range(0,n):
    if guess**3 == n:
        root = guess

if root > -1:
    print(root,n)
else:
    print("not a perfect cube")
,

您可以改用以下代码:

pivot_longer()
,

您想做的是:

Shell
,

for循环会增加值,在这种情况下为猜测值。猜测=猜测+ 1会使事情搞砸。

代码:

n = int(input('n = '))
for guess in range(0,n+1):
    if guess**3 == n:
        print(guess,n)
    if guess**3 != n:
        print("not a perfect cube")

您还可以将第二个if条件更改为elif,以便仅在不满足第一个条件时运行。

n = int(input('n = '))
for guess in range(0,n)
    elif guess**3 != n:
        print("not a perfect cube")

最后,您可以像下面这样将其存储在[number_found,isFound]列表中。

代码:

n = int(input('n = '))
found = [None,False]
for guess in range(0,n+1):
    if guess**3 == n:
        found = [guess,True]

if found[1]:
    print(found[0],n)
else:
    print("not a perfect cube")
,

因为您的第一和第三陈述相同 试试这个

n = int(input('n = '))
j = 0
for guess in range(0,n + 1):
if guess**3 == n:
    j = guess
else:
    guess += 1

if j == 0:
    print("not a perfect cube")
else:
    print(j,n)
,

如果在for循环中,您不应该在第一个字段中输入guess = guess + 1。