1173:寻找2的幂

来源:互联网 发布:人工智能简介 编辑:程序博客网 时间:2024/06/06 03:51

1173:寻找2的幂


Description

数学上把2的K次方叫2的K次幂,如4、8、32等。给定一个整数n,请输出距离它最近的那个2的幂是多少。如果有两个距离相同,输出那个小的。

Input

只有一个整数 n(10 <= n <= 2000000000)

Output

只有一个整数,表示距离 最近的那个2的幂。

Sample Input

17

Sample Output

16


#include<iostream>using namespace std;int main(){    long long int n,a[100]={0};    cin>>n;    a[0]=1;    for(int i=1;i<33;i++)    a[i]=a[i-1]*2;    for(int i=3;i<33;i++)    {        if(n-a[i]<a[i+1]-n||n-a[i]==a[i+1]-n)           {            cout<<a[i];            break;           }    }}


原创粉丝点击