25. 자료 구조와 알고리즘/나의 알고리즘

06. 재귀함수 (Recursive Call) - 홀수와 짝수에 따라 분기처리

THE HEYDAZE 2021. 9. 11. 12:30

재귀함수 (Recursive Call)
정수 n에 대해 n 이 홀수이면 3 * n + 1 을 하고, n 이 짝수이면 n 을 2로 나눕니다
이렇게 계속 진행해서 n 이 결국 1 이 될 때 까지 반복하고
이렇게 정수 n 을 입력받아, 위 알고리즘에 의해 1이 되는 과정을 모두 출력하는 함수를 작성하세요
public class RecursiveCall4 {

    public static void main(String[] args) {

        int num = 3;

        int result = EvenOddRe(num);

    }

    private static int EvenOddRe(int num) {
        System.out.println(num);

        if (num <= 1) {
            return num;
        }

        if (num % 2 == 0) return EvenOddRe(num / 2);
        else return EvenOddRe(3 * num + 1);
    }
}