본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1929 : 재귀로 1부터 n까지 합 리턴하기

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1929 : [재귀함수] 우박수 (3n+1) (자바, JAVA)입니다.

Intro

Question

문제 설명

입력

자연수 n이 입력된다.(1<=n<=10,000,000)

출력

3n+1의 과정을 출력한다.

예시

  • 입력 : 5
  • 출력 :
    1
    2
    4
    8
    16
    5

Solution (풀이)

  • 풀이 : 메모리 11856, 시간 : 73
public class Answer1 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int number = Integer.parseInt(br.readLine());

        loop(number); // 입력받은 숫자를 loop에 넘긴다.
    }

    public static void loop(int number) {
        if (number==1) {
            System.out.println(1); // 파라미터로 받은 숫자가 1이면 1출력
            return;
        }
        if (number%2==0) { // 해당 숫자가 짝수면
            loop(number/2); // loop에 /2 한 값으로 넘기기
        } else {
            loop(number*3+1); // 홀수이면 *3+1 결과 넘기기
        }

        System.out.println(number);
    }

}

Ranking(순위)

반응형