1.分蛋糕
import java.util.ArrayList;
import java.util.List;
/** n个蛋糕,1-n顺序编号
* 从左边每隔一个拿一个蛋糕,再从右边每隔一个拿蛋糕,最后一个拿到编号为几的蛋糕
* 1 2 3 4 5 6 7 8 9
* 2 4 6 8
* 2 6
* 6
* @author moyingrener
* @date 2021/4/23
*/
public class 分蛋糕 {
public static void fenDanGao(List list){
if(list.size()==1){
System.out.println("最后一个蛋糕编号 : "+list.get(0));
return;
}
for (int i = 0; i < list.size(); i++) {//从左边开始,顺序移除即可
list.remove(i);
if(list.size()==1){
System.out.println("最后一个蛋糕编号 : "+list.get(0));
return;
}
}
for (int i = list.size()-1; i >=0; i--) {//从右边开始,每次循环i要-2
list.remove(i);
if(list.size()==1){
System.out.println("最后一个蛋糕编号 : "+list.get(0));
return;
}
i--;//再减1
}
fenDanGao(list);
}
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);
list.add(7);
list.add(8);
list.add(9);//9个结果是6
// list.add(10);//10个结果是8
fenDanGao(list);
}
}