그레이코드 출력
조회수 375회
그레이 코드 출력하는 알고리즘 부분에서 막혀서 질문 드려봅니다.
def gray_calc4(text, n):
if n == 1:
for i in range(0, 2):
if i == 1:
print(text + "1")
elif i == 0:
print(text + "0")
elif n > 1:
for m in range(0, 2):
if m == 1:
text = text + '1'
gray_calc4(text, n-1)
elif m == 0:
text = text + ' ==0== '
gray_calc4(text, n-1)
def gray_calc3(n):
for i in range(0, 2):
if i == 1:
text = '1'
gray_calc4(text, n-1)
elif i == 0:
text = '0'
gray_calc4(text, n-1)
def gray_code3():
n = input("n bit gray : ")
n = int(n)
gray_calc3(n)
ㅇ
이렇게 작성 하고 gray_code3() 을 실행하면 출력이 이뤄지는데,
중간에 ==0== 로 제가 출력 표기한 부분이 원래는 안 나올 때 안 나와야 하는데, 모든 부분에서 다 나옵니다. (저는 n=3으로 입력하고 테스트를 했습니다. )
도저히 왜 저 부분이 모든 부분에 항상 다 들어가는지를 찾지 못해 해결하지 못하고 있습니다.
어떤 원인으로 해당 부분이 계속 나왔는지가 궁금합니다.
1 답변
-
이와 같은 질문을 올리실 때에는 의도했던 결과가 어떤것이었는지, 실제 결과와 어떻게 다른지도 함께 올려주시는 것이 좋습니다.
일단
gray_calc4
함수를 보면,m == 0
일 때text
에==0==
를 추가한 상태로 덮어씁니다.따라서
m == 1
일 때 사용하는text
는==0==
이 추가된 문자열이고, 따라서 모든 경우에==0==
이 나타나게 됩니다.이 부분 유의해서 수정해 보시면 되지 않을까 싶습니다.
댓글 입력