저는 오각형과 정사각형 숫자 목록을 만드는 함수를 만들었습니다.
내가 지금까지 얻은 것은 다음과 같습니다.
def sqpent(n):
i = 0
list = []
while n >= 0:
if n == 0:
list.append(0)
elif n == 1:
list.append(1)
elif (i*i == (i*(3*i-1)//2)):
list.append(i)
n -= 1
i += 1
하지만 처음 두 숫자를 지나면 그렇게하는 데 시간이 걸리는 것 같습니다 ...
@interjay의 조언 덕분에 완벽하게 작동하는 다음 답변을 찾았습니다.
import math
def sqpent(n):
counter = 0
i = 0
l = []
while counter < n:
x = (i*(3*i-1)//2)
#print(x)
if(int(math.sqrt(x))**2 == x):
#print("APPENDED: " + str(x))
l.append(x)
counter += 1
i += 1
return l
설명 :
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다