首页 > 试题广场 >

数字拆分

[编程题]数字拆分
  • 热度指数:40 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
牛牛给你一个数,将其拆成个数字的和,使得用这个数字的部分和能表示出中的所有数字。例如时,将分为,那么有。现在给你,求最小的是多少。

输入描述:
第一行为一个,表示有组数据。
接下来有行,每个一个整数


输出描述:
输出为行,每行表示一个最小的
示例1

输入

2
6
2

输出

3
2
n = int(input())
for _ in range(n):
    x = int(input())
    res = 0
    while x > 0:
        x >>= 1
        res += 1
    print(res)

发表于 2022-09-04 18:09:11 回复(0)