Description
数学上把2的K次方叫2的K次幂,如4、8、32等。给定一个整数n,请输出距离它最近的那个2的幂是多少。如果有两个距离相同,输出那个小的。
Input
只有一个整数 n(10 <= n <= 2000000000)
Output
只有一个整数,表示距离 最近的那个2的幂。
Sample Input
17
Sample Output
16
import java.util.Scanner;
import java.lang.*;;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
int m = n;
int i =0;
while(m/2>0){
m = m/2;
i++;
}
long a = (long)Math.pow(2, i);
long b = (long)Math.pow(2, i+1);
System.out.println((n-a)<=(b-n)?a:b);
}}