[英]Python program that finds perfect cube
我已經寫了這段代碼,但是當我寫 64 時,它說不是完美的立方體,為什么?
num=int(input('num: '))
for i in range(0,num+1):
if num==i**3:
print('It is perfect cube')
else:
print('not perfect cube')
break
如果num == i**3
對於您檢查的每個i
值(而不僅僅是其中一個)都為假,您只想打印“不完美的立方體”。 基本上,您希望將else
附加到for
循環,而不是if
語句,
for i in range(num+1):
if num == i**3:
print('It is a perfect cube')
break # Don't need to check more
else:
# Only executed if the loop ends "naturally", not via a break
print('It is not a perfect cube')
如果您想在i ** 3 > num
后停止循環,這會變得更復雜一些; 你需要一個標志來表明你是因為找到了立方根,還是因為你知道沒有立方根。 一種可能的方法:
cube = False
for i in range(num+1):
tmp = i ** 3
if num == tmp:
print('It is a perfect cube')
cube = True
break
elif num < tmp:
break
else:
if not cube:
print('Not a cube')
# Import math class
import math
num = int(input('num: '))
# Check cube of number i upto square root of num
# If cube found print the message 'Perfect cube' and exit loop
for i in range(int(math.sqrt(num))+1):
if i**3 == num:
print('It is perfect cube')
break
# Check whether cube was found or not , if not found print the message 'Not perfect cube'
if i**3 != num:
print('Not perfect cube')
一個快速版本,在找到解決方案后將停止評估值。
num = int(input('num: '))
if any(num == i ** 3 for i in range(num)):
print('perfect cube')
else:
print('not perfect cube')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.