#2117. 【基础】寻找2的幂

【基础】寻找2的幂

题目描述

数学上把 2k2^k 称为 22kk 次幂,例如 4,8,324,8,32 等。

给定一个整数 nn,请输出距离 nn 最近的那个 22 的幂。如果有两个 22 的幂与 nn 的距离相同,输出较小的那个。

输入格式

输入一行一个整数 nn

输出格式

输出一行一个整数,表示距离 nn 最近的 22 的幂。

17
16

数据范围与提示

  • 10n200000000010 \le n \le 2000000000
  • 可从 1,2,4,8,ldots1,2,4,8,ldots 开始枚举不超过并刚超过 nn 的两个相邻 22 的幂,再比较距离。
  • 当距离相同,输出较小的那个。

来源

需要找规律的循环