问题描述
我需要使用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。