《庄子》里面说过:“一尺之棰,日取其半,万世不竭”。
无论是多长多短的物体
每天取其中的一半
都是永远不会取完的
于是,问题来了:
第一天有一根长度为(1e9) 的木棍,从第二天开始,每天都要将这根木棍锯掉一半(每次除 2,向下取整)。第几天的时候木棍长度会变为 1?
首先我们随便定义一个整数(int , 当然long long也是可以的)
提示:不是高精度,普普通通的题目而已,入学级难度
输入这个整数
重点来了:然后我们需要一个循环
因为我们需要知道这个物体会在第几天变成长度为一
所以我们设一个计算器
每判断一次这个物体长度!= 0就+1
否则输出
下面展示核心代码(有一部分自己想)
for(int i = n; i > 0; i = i / ?){
if(i / 2 != ?){
s = ?;
}else{
?
}
}
好了,讲解到此结束!