콜라츠의 추측, 3n+1 문제, 우박수 문제라고 불리는 이 문제는 다음과 같다.
1, 어떤 자연수 n이 입력되면,
2. n이 홀수이면 3n+1을 하고,
3. n이 짝수이면 n/2를 한다.
예를 들어 5는 5 → 16 → 8 → 4 → 2 → 1 이 된다.
이 처럼 어떤 자연수 n이 입력되면 위 알고리즘에 의해 1이 되는 과정을 모두 출력하시오.
이 문제는 반복문 for, while 등을 이용하여 풀수 없습니다.
IO example : 입력
5
출력
5
16
8
4
2
1
# include <stdio.h>
void p(int a)
{
printf("%d\\n",a);
if(a == 1)
return;
if(a%2 == 1)
p(a*3+1);
else
p(a/2);
}
int main(){
int n;
scanf("%d",&n);
p(n);
return 0;
}