簡體   English   中英

Python 找到完美立方體的程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM