题目描述
数学上把2的K次方叫2的K次幂,如4、8、32等。给定一个整数n,请输出距离它最近的那个2的幂是多少。如果有两个距离相同,输出那个小的。
输入
只有一个整数 n(10 <= n <= 2000000000)
输出
只有一个整数,表示距离 最近的那个2的幂。
样例输入
17
样例输出
16
#include<stdio.h>
#include<math.h>
int
main()
{
int
m,n,h,i=1;
scanf
(
"%d"
,&m);
n=2;
while
(n<=m)
{n*=2;}
if
((n-m)<(m-n/2))
printf
(
"%d"
,n);
else
printf
(
"%d"
,n/2);
return
0;
}