如果我輸入 25,則答案應該是 5 作為整數。如果我輸入 24 答案應該是 4.898989486 浮點數。這可以在python中做到嗎?
上下文-:我需要編寫一個代碼來找到下一個完美的正方形。
import math
def find_next_square(sq):
# Return the next square if sq is a square, -1 otherwise
sq2=math.sqrt(sq)
xyz=isinstance(sq2, int)
if (xyz==True):
print("Is perfect square")
nextsq=sq+1
print("Next perfect square=",nextsq**2)
else:
print("Not perfect square")
return -1
n=int(input("Enter an integer"))
find_next_square(n)
這是代碼。對於 25,這將返回 sq2=5.0,因此它返回非完美平方。我需要一種方法來使這個返回完美的正方形。
期望的行為-:
如果我把 25 作為 n。它應該將它作為完全平方返回並返回 36。
具體問題-:
這裡的問題是
import math
sq=25
sq2=math.sqrt(sq)
print(sq2)
xyz=isinstance(sq2, int)
print(xyz)
即使對於 sq=25,它也會將其作為浮點數返回。那個 math.sqrt() 函數。它改變了我的整個遊戲。
重現問題所需的最短代碼-:
import math
sq=24
sq2=math.sqrt(sq)
print(sq2)
xyz=isinstance(sq2, int)
print(xyz)
import math
ans = math.sqrt(int(input())) # calculate an answer
print(int(ans) if ans.is_integer() else ans) # convert answer to int if we can do it
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句