優雅的點

    題目:小易有一個圓心在座標原點的圓,小易知道圓的半徑的平方。
    小易認爲在圓上的點而且橫縱座標都是整數的點是優雅的,小
    易現在想尋找一個算法計算出優雅的點的個數,請你來幫幫他。
    例如:半徑的平方如果爲25
    優雅的點就有:(+/-3, +/-4), (+/-4, +/-3), (0, +/-5) (+/-5, 0),一共12個點。
    輸入描述:輸入爲一個整數,即爲圓半徑的平方,範圍在32位int範圍內。
    輸出描述:輸出爲一個整數,即爲優雅的點的個數;以及優雅點的座標
import numpy as np
rsquare=input("輸入半徑的平方:")
rsquare=int(rsquare)
r=int(np.sqrt(rsquare))
#初始化座標以及計算勾股定理
coordinate=[(i,j) for i in range(-r,r+1) for j in range(-r,r+1)]
coordinate1=[i*i+j*j for i in range(-r,r+1) for j in range(-r,r+1)]
count,List=0,[]
for i in range(len(coordinate1)):
    if rsquare == coordinate1[i]:
        List.append(coordinate[i])
        count+=1
print("優雅點個數:",count)
print("優雅點座標:",List)

    在優雅點計算中,可以理解成三角形勾股定理(a^2+b^2=c^2),存在一條邊爲0的情況,如果輸入的邊的長度滿足勾股定理且邊不存在0的情況,那麼他至少有12個優雅點。如果在滿足勾股定理,且有一條邊爲0,那麼就是N平方形式,他的優雅點個數爲4。如果有多個不同的a^2+b^2=c^2,那麼存在優雅點個數在4的基礎上多一個就多8個優雅點。

    以10000爲輸入測試運行如圖:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章