BOJ

[BOJ] 3460번 - 이진수

곰제비 2022. 6. 14. 14:12

<접근 방식>

주어진 10진수를 2진수로 나타내어 1의 위치를 표시하는 문제이다.

%와 / 연산자를 통해 이진수를 구하고 1인 경우만 출력해주도록 한다.

테스트 케이스마다 자리를 표시하는 count를 0으로 초기화해야 한다.

<전체 코드>

#include <iostream>

using namespace std;

int T, n, num;

int main()
{
	cin.tie(0);
	ios_base::sync_with_stdio(false);
	
	cin >> T;

	while (T--) {
		cin >> n;
		int count = 0;
		while (n > 0) {
			num = n % 2;
			n /= 2;
			if (num == 1)
				cout << count << " ";
			count++;
		}
	}
}

<문제 링크>

https://www.acmicpc.net/problem/3460

 

3460번: 이진수

양의 정수 n이 주어졌을 때, 이를 이진수로 나타냈을 때 1의 위치를 모두 찾는 프로그램을 작성하시오. 최하위 비트(least significant bit, lsb)의 위치는 0이다.

www.acmicpc.net