开挂了!
题号:NC219186
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

现在你在打王者荣耀,但你开了挂,你可以连A,你会按照这样的规则对对面进行平A:

先A一下,再A一下,接下来再进行平A会触发连A,每次连A的次数都是前面的次数之和。

但你发现这样伤害很容易爆炸,很容易被举报,所以你改善了这个外挂,变成了这样:

先A一下,再A一下,接下来再进行平A会触发连A,每次连A的次数都是前面的次数之和,如果会导致伤害溢出,则重置(即重新先A一下,再A一下……)

现在对面一共有滴血,假设你一次平A的伤害是滴血,现在你想知道,你需要按多少下平A才能把对面打死呢?

输入描述:

输入第一行为一个数,表示用例组数。
对于每组用例,一行内输如一个

输出描述:

对于每组用例,输出答案。
示例1

输入

复制
6
1
2
3
4
10
12

输出

复制
1
2
3
3
6
7

说明

10 = 1 + 1 + 2 + 4 + 1 + 1
12 = 1 + 1 + 2 + 4 + 1 + 1 + 2

备注:

试了一下,好像没卡常,暴力就能过=。=(要是假的别喷我)