취뽀 기록

#열심히 살자 #취업 #공부

Python/[코드트리]

[코드트리] n번 반복 > 3n + 1 수열 m번(★)

hyunnn_00 2023. 6. 27. 15:17
자연수 n이 주어집니다. n에서 시작하여 n이 짝수면 2로 나누고, n이 홀수면 3을 곱하고 1을 더하는 것을 n이 1이 되기 전까지 계속 반복하려고 합니다. 총 몇 번을 반복해야 1이 되는지를 계산하는 프로그램을 작성해보세요.

 

예를 들어 n = 3인 경우 3 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1 순서로 1이 되므로 답이 7이 됩니다.

이 문제에서는 총 m번에 걸쳐 n 값이 주어집니다. 각각의 경우에 대해 주어진 n이 1이 되는데 걸리는 횟수를 구해야 합니다.

 

 

 

# 변수 선언 및 입력
m = int(input())
	
# m회 반복합니다.
for _ in range(m):
	# 변수 선언 및 입력
	n = int(input())
	ans = 0
		
	# n이 1이 될 때까지 3n + 1을 반복합니다.
	while n != 1:
		if n % 2 == 0:
			n /= 2
		else:
			n = n * 3 + 1
			
		ans += 1
	
	print(ans)
    
# 나의 풀이 ----------------------------------
m = int(input())


for _ in range(m):
    n = int(input())
    cnt = 0
    
    while n != 1:
        if n % 2 == 0:
            n /= 2
        
        else:
            n = n * 3 + 1
        cnt += 1
    print(cnt)