algorithm

더블릿|dovelet - 3번째 계단 - 3*n+1/3np1

블루건 2016. 8. 22. 00:49

질문


프로그램 명: 3np1
제한시간: 1 초

정수를 입력으로 받아,

  • 짝수이면 2 로 나누고 , 홀수이면 3 배해서 1 을 더함
  • 1 이 될 때 까지 반복

6 이 입력으로 주어지면

6 3 10 5 16 8 4 2 1

입력

1000 이하의 자연수가 입력으로 주어진다.

출력

공백 한자리로 수를 구분한다.

입출력 예

입력

4

출력

4 2 1

입력

6

출력

6 3 10 5 16 8 4 2 1
풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
 
using namespace std;
 
int main()
{
    int n;
    cin >> n;
    cout << n << " ";
 
    while (n != 1)
    {
        if (n % 2 == 0)
        {
            n /= 2;
            cout << n << " ";
        }
        else
        {
            n *= 3;
            n += 1;
            cout << n << " ";
        }
    }
 
    return 0;
}
cs