개요
HR30 Day 29: Bitwise AND
- https://www.hackerrank.com/challenges/30-bitwise-and/problem
- https://www.hackerrank.com/challenges/30-bitwise-and/tutorial
Java
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;
public class Solution {
private static final Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
int t = scanner.nextInt();
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
for (int tItr = 0; tItr < t; tItr++) {
String[] nk = scanner.nextLine().split(" ");
int n = Integer.parseInt(nk[0]);
int k = Integer.parseInt(nk[1]);
if( ((k-1)|k)<=n )
System.out.println( k-1 );
else
System.out.println( k-2 );
}
scanner.close();
}
}
PHP
<?php
$stdin = fopen("php://stdin", "r");
fscanf($stdin, "%d\n", $t);
for ($t_itr = 0; $t_itr < $t; $t_itr++) {
fscanf($stdin, "%[^\n]", $nk_temp);
$nk = explode(' ', $nk_temp);
$n = intval($nk[0]);
$k = intval($nk[1]);
if( (($k-1)|$k) <= $n ) echo $k-1 . "\n";
else echo $k-2 . "\n";
}
fclose($stdin);
Python
#!/bin/python3
import math
import os
import random
import re
import sys
if __name__ == '__main__':
t = int(input())
for t_itr in range(t):
nk = input().split()
n = int(nk[0])
k = int(nk[1])
print(k-1 if ((k-1) | k) <= n else k-2)