第二批,花猫仍吃掉报单数的;第三批也是如此……最后剩下的一只老鼠可以被保留,与第二天抓来的老鼠一起重新排队报数。
后来,发生了一件极其有趣的事情。大花猫发现,一连好几天,最后被留下的总是一只机灵的小白鼠。
大花猫就问小白鼠:"你想了什么办法,能每天都留下呢?"小白鼠说:"尊敬的大花猫先生,
每天排队前我都先数一数你抓到了多少只老鼠,然后,我站在一个相应的位置,就可以留下来了。"
小白鼠每天应站在什么位置才能不被花猫吃掉。
编程实现:输入每天排队的老鼠的只数,输出小白鼠站的位置。
输入样例:
10
输出样例:
8
package week06;
import java.util.Scanner;
public class MousePosition {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double mouseCount = scanner.nextInt();
double position = findMousePosition(mouseCount);
int ppp=(int)position;
System.out.println(ppp);
scanner.close();
}
public static double findMousePosition(double mouseCount) {
int i;
for(i=0;i<mouseCount;i++) {
if(Math.pow(2, i)>=mouseCount) {
return Math.pow(2,(i-1)) ;
}
}
return Math.pow(2, i);
}
}
核心思想就是找2最大的那个的n次方 只有这样才能满足 最大次数的存活