Hackerrank | 10 Days of Javascript | Day 6-Solution in JS | Bitwise-Operators-Hackerrank-Solution-in-JS


Hackerrank | 10 Days of Javascript | Day 6-Solution in JS | Bitwise-Operators-Hackerrank-Solution-in-JS

Hackerrank Solution 10-Days-of-JavaScript

Objective

Today, we're practicing bitwise operations. Check the attached tutorial for more details.

Task

We define  to be a sequence of distinct sequential integers from  to ; in other words, . We want to know the maximum bitwise AND value of any two integers,  and  (where ), in sequence  that is also less than a given integer.

Complete the function in the editor so that given  and , it returns the maximum .

Note: The  symbol represents the bitwise AND operator.

Input Format

The first line contains an integer, , denoting the number of function calls.
Each of the  subsequent lines defines a dataset for a function call in the form of two space-separated integers describing the respective values of  and .

Constraints

Output Format

Return the maximum possible value of  for any  in sequence .

Sample Input 0

3
5 2
8 5
2 2

Sample Output 0

1
4
0

Explanation 0

We perform the following  function calls:

  1. When  and , we have the following possible  and  values in set :

    The maximum of any  that is also  is , so we return .

  2. When  and , the maximum of any  in set  is  (see table above), so we return .
  3. When  and , the maximum of any  in set  is  (see table above), so we return .

Sample Input 1

2
9 2
8 3

Sample Output 1

1
2

Explanation 1

We perform the following  function calls:

  1. When  and , the maximum of any  in set  is  (see table above), so we return .
  2. When  and , the maximum of any  in set  is  (see table above), so we return .

https://www.hackerrank.com/challenges/js10-bitwise/problem
Day 6: Bitwise Operators Solution in JS
'use strict'; process.stdin.resume(); process.stdin.setEncoding('utf-8'); let inputString = ''; let currentLine = 0; process.stdin.on('data', inputStdin => { inputString += inputStdin; }); process.stdin.on('end', _ => { inputString = inputString.trim().split('\n').map(string => { return string.trim(); }); main(); }); function readLine() { return inputString[currentLine++]; } function getMaxLessThanK(n, k) { let largest = 0; let current = 0; for (let i = 1; i < n; i++) { for (let x = i + 1; x <= n; x++) { current = i & x; if (current < k && current < n && current > largest) { largest = current; } } } return largest; } function main() { const q = +(readLine()); for (let i = 0; i < q; i++) { const [n, k] = readLine().split(' ').map(Number); console.log(getMaxLessThanK(n, k)); } }

Post a Comment

0 Comments