728x90
1928 : (재귀함수) 우박수 (3n+1) (basic)
문제 설명
콜라츠의 추측, 3n+1 문제, 우박수 문제라고 불리는 이 문제는 다음과 같다.
1, 어떤 자연수 n이 입력되면,
2. n이 홀수이면 3n+1을 하고,
3. n이 짝수이면 n2를 한다.
4. 이 n이 1이 될때까지 2 3과정을 반복한다.
예를 들어 5는 5 → 16 → 8 → 4 → 2 → 1 이 된다.
이 처럼 어떤 자연수 n이 입력되면 위 알고리즘에 의해 1이 되는 과정을 모두 출력하시오.
이 문제는 반복문 for, while 등을 이용하여 풀수 없습니다.
금지 키워드 : for, while, goto
시간 제한 : 1 Sec
메모리 제한 : 128 MB
입력
자연수 n이 입력된다.(1<=n<=10,000,000)
단, 3n+1이 되는 과정에서 int범위를 넘는 수는 입력으로 주어지지 않는다.
출력
3n+1의 과정을 출력한다.
입력 예시
5
출력 예시
5
16
8
4
2
1
풀이
def wubak(n) :
print(n)
if n==1 :
return 1
if n%2==1 :
return wubak(3*n+1)
else :
return wubak(n//2)
N = int(input())
wubak(N)
728x90
'Algorithm(Python) > 재귀함수' 카테고리의 다른 글
[Algorithm] CodeUp 1953 (재귀함수) 삼각형 출력하기 1(python 파이썬) (0) | 2022.05.22 |
---|---|
[Algorithm] CodeUp 1929 (재귀함수) 우박수 (3n+1) (reverse)(python 파이썬) (0) | 2022.05.21 |
[Algorithm] CodeUp 1920 (재귀함수) 2진수 변환(python 파이썬) (0) | 2022.05.19 |
[Algorithm] CodeUp 1916 (재귀함수) 피보나치 수열 (Large)(python 파이썬) (0) | 2022.05.18 |
[Algorithm] CodeUp 1915 (재귀함수) 피보나치 수열(python 파이썬) (0) | 2022.05.17 |