1514: 棋盘上的米粒
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:288
解决:91
题目描述
从前,有个大臣救了国王一命。国王要感谢一个大臣,就说,你有啥想要的没,我都满足你。大臣说,我要的不多,只要在棋盘的第一个格子里装 1 粒米,第二个格子里装 2 粒,第三个格子里装 4 粒,第四个格子里装 8 粒,以此类推,直到把 64 个格子装完。
国王说,你就这点要求吗,要不要换一个?大臣连说,不换了,不换了。国王大笑,你一定得偿所愿的。
国王招呼人给大臣准备大米,已知国库里有 n 个米粒,国王从第一个格子开始放米粒。可是随着格子一个一个被填满,国王的脸色越来越凝重……
当放到第 k 个格子时,国库里所有的米粒都被用光了!
聪明的你能否找到 k 的大小?
输入
多组测试数据,每组只有一个整数 n (1 ≤ n ≤ 1018)
测试数据以 EOF 结束
输出
每组测试数据包含一行,每行只有一个整数 k
样例输入 复制
1
4
样例输出 复制
1
3
提示
样例解释:
第一组数据:
一共 1 粒米
第一个格子放 1 粒米,米粒用完
k = 1
第二组数据:
一共 4 粒米
第一个格子放 1 粒米,此时还剩下 3 粒米
第二个格子放 2 粒米,此时还剩下 1 粒米
第三个格子放 1 粒米 ,米粒用完
k = 3
第一组数据:
一共 1 粒米
第一个格子放 1 粒米,米粒用完
k = 1
第二组数据:
一共 4 粒米
第一个格子放 1 粒米,此时还剩下 3 粒米
第二个格子放 2 粒米,此时还剩下 1 粒米
第三个格子放 1 粒米 ,米粒用完
k = 3