SWEA 10726. 이진수 표현 (C++)

모옹·2023년 2월 18일
0

알고리즘

목록 보기
13/18

요약

1111(2)를 만들기 위해 (1<<4)-1


문제

정수 N, M 이 주어질 때,
M의 이진수 표현의 마지막 N 비트가 모두 1로 켜져 있는지 아닌지를 판별하여 출력하라.

[입력]
첫 번째 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스의 첫 번째 줄에는 N (1 ≤ N ≤ 106)이 주어진다.

[출력]
최소 몇 번 양을 세었을 때 이전에 봤던 숫자들의 자릿수에서 0에서 9까지의 모든 숫자를 보게 되는지 출력한다.

풀이

#include <iostream>
#include <string>
using namespace std;

int N, M;

void init() {
	cin >> N >> M;
}

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie();
	cout.tie();

	int T;
	cin >> T;
	for (int tc = 1; tc <= T; tc++) {
		init();
		int cnt = (1 << N) - 1 ;

		string x;
		if ((cnt & M) == cnt) x = "ON";
		else x = "OFF";

		cout << "#" << tc << " " << x << "\n";
	}

	return 0;
}

0개의 댓글