设有n个人依围成一圈,从第1个人开始报数,数到第m个人出 列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所 有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出出列的顺

public class weichengquan{//设有n个人依围成一圈,从第1个人开始报数,数到第m个人出
                     //列,然后从出列的下一个人开始报数;输出出列的顺序来
  public void play(int num,int step){
  int[] numS=new int[num];
  int tep=0;//记录步数;1<=tep<=step
  int sd=0; //只有当sd等于数组长度-1时,说明都出列完毕了,每次有出列的都会置零;
  ff:       //本题目的要点;在遍历完一边数组后,tep是不置零的;
  while(true){
 if(sd==numS.length-1)//如果相等,说明出列完毕,跳出循环
  break ff;
  for(int i=0;i<numS.length;i++){
 if(numS[i]!=1&&tep!=step){
  tep++;
}else if(numS[i]==0&&tep==step){
  System.out.println(i);
  numS[i]=1;
  tep=0;
  sd=0;
  }else
  sd++;
  }
  
  }
  }
       public static void main(String[] args){
      weichengquan fd=new weichengquan();
      fd.play(20, 3);
       }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值