50个人,数到3和3的倍数即退出,问最后剩下谁?

来源:互联网 发布:linux快速删除命令行 编辑:程序博客网 时间:2024/04/30 21:50

 public class TestThree {
 public static void main(String...args){
  int k = 0;
  for(int i=2; i <=50; i++){
    k =  (k+3) % i ;
  }
  System.out.println("最后剩下:"+(k+1));
 }
}

 

此算法正在研究中,似乎可以推广到n个人,数到m退出,如下:

int k= 0;

for(int i = (m-1);  i<n; i++){

   k = (k+m)%i;

}

原创粉丝点击