little w and Soda
题号:NC21756
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

不知道你听没听说过这样一个脑筋急转弯。

2元可以买一瓶汽水(玻璃瓶装的),因为瓶身是玻璃瓶的比较贵,所以两个瓶身可以换一瓶汽水。你现在有4元钱,问最多能喝到多少瓶汽水?

答案是4瓶。一开始先用4元钱买两瓶汽水喝掉,再用这两瓶的汽水的瓶身换一瓶喝到,最后还剩一个瓶身,这个时候再朝小卖部的老板借一个瓶身。换一瓶汽水喝掉之后再还给他一个瓶身。

现在问题来了,一开始你有n(1\leq n\leq 10^{100})元钱,然后你最多可以向老板借一个瓶身(注意要还的),问你最多能喝到多少瓶汽水?

输入描述:

第一行是一个正整数T(T\leq 100)表示有T组案例。

对于每组案例,输入一个正整数(1\leq n\leq 10^{100})

(请注意输入数据的范围,n10^{100}那么大)

输出描述:

对于每组案例,输出一行一个正整数表示最多能够喝到的汽水数目
示例1

输入

复制
3
1
2
1000000000000000000000000000000

输出

复制
0
2
1000000000000000000000000000000

说明

1块钱不能购买汽水,所以共喝到0瓶

2块钱先买一瓶汽水,喝完以后再借一个空瓶,换一瓶,喝掉以后还给老板。所以一共可以喝到2瓶。

备注:

请选用合理的数据类型。

int 型的最大值为2147483647

long long 型的最大值为9223372036854775807

float的有效数位为6位。

double的有效数位为12位。

所以本题无法使用以上数据类型处理。