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