Задано целое число n.
С помощью битовых операций замените крайний правый бит 1 в двоичном
представлении числа n на 0.
Вход. Одно целое число n
(1 ≤ n ≤ 108).
Выход. Выведите одно
измененное число.
Пример
входа |
Пример
выхода |
18 |
16 |
элементарная задача – битовые операции
Анализ алгоритма
Рассмотрим выполнение
бинарной операции n & (n – 1) для натурального числа n:
Если у числа n заменить самый правый единичный бит на
ноль, то получится число n & (n – 1).
Реализация алгоритма
Читаем входные
данные.
scanf("%d",&n);
Вычисляем и
выводим ответ.
res = n & (n
- 1);
printf("%d\n",res);
Java реализация
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int n = con.nextInt();
int res = n &
(n - 1);
System.out.println(res);
}
}
Python реализация
Читаем входные
данные.
n = int(input())
Вычисляем и
выводим ответ.
res = n & (n
- 1)
print(res)