파이썬 대칭인 수를 찾으려고 하는데
조회수 1030회
list1 = []
for i in range(1,1001):
str1 = str(i)
for j in range(0,len(str1)):
if str1[j] == str1[-1-j]:
list1.append(i)
print(list1)
12321
처럼 중간을 기준으로 앞뒤가 똑같은 숫자를 찾으려고 하는데
저렇게 짜니까 앞에 하나랑 뒤에 하나만 일치해도 list1에 넣어지는데
모두 일치해야 리스트에 추가되게 어떻게 만들까요?
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
예컨대
7
자리 수라고 하면 다음이 모두 참인지 검증하면 됩니다. 하나라도 틀리면 그건 회문수가 아닙니다.str(i)[0] == str(i)[6]
str(i)[1] == str(i)[5]
str(i)[2] == str(i)[4]
str(i)[3] == str(i)[3]
<-- 앗 이건 당연히 참이겠군요.
그러므로:
- 7자리 수가 주어지면 총 4번 검증해야 한다 (왜 하필
round(3.5)
번?) - 각 검증은 주어진 수의 특정 자릿수 숫자들을 규칙적으로 비교할 수 있어야 한다 (어떻게?)
의 요건들만 지키면 원하시는 것은 구현될 겁니다. 시도해 보세요!
댓글 입력