黑马程序员技术交流社区

标题: 大神求回复 [打印本页]

作者: 邬jerry    时间: 2015-10-11 17:18
标题: 大神求回复
20个人站成一圈,编号0~19,从编号0开始报数1.....,遇到3的倍数的就剔除去,循环报数,最后剩一个人,他的编号是多少号?程序如何实现,话说3个小时内能做出来比较适合程序员?
作者: 莫盛强    时间: 2015-10-11 19:06
这不是数组吗?循环,判断(i%3==0)
作者: didixyy    时间: 2015-10-11 19:35
定义一个数组,for 循环就可以了,满足条件就从数组里删除它
作者: Smilexs    时间: 2015-10-11 19:46
  1.         public static void main(String[] args) {
  2.                 int k=3;//k的倍数淘汰
  3.                 ArrayList<Integer> datas = new ArrayList<Integer>();
  4.                 datas.add(1);
  5.                 datas.add(2);
  6.                 datas.add(3);
  7.                 datas.add(4);
  8.                 datas.add(5);
  9.                 datas.add(6);
  10.                 datas.add(7);
  11.                 datas.add(8);
  12.                 datas.add(9);
  13.                 datas.add(10);//10个人,可自行添加,最好用数组初始化,再转成链表,这里就不做了!
  14.                 int count =1;//报的数
  15.                 while(datas.size()!=1){//只有一个元素,退出
  16.                         for (int i = 0; i < datas.size(); i++) {
  17.                                 if(count%3==0){
  18.                                         datas.remove(i);
  19.                                         i--;//删除,元素向前移了
  20.                                 }
  21.                                 count ++;
  22.                         }
  23.                 }
  24.                 System.out.println("剩下的号数是:"+datas.get(0));
  25.         }
复制代码



作者: didixyy    时间: 2015-10-11 20:20
好吧得用递归才行。我想了好久FOr循环好像不行
  1. package day2;

  2. import java.util.ArrayList;

  3. public class test123 {
  4.        
  5. public static void main(String[] args) {
  6.         int a = 20;
  7.         int b = 3;
  8.         System.out.println(ysf(a,b));
  9.         }
  10.         static int ysf(int a,int b){
  11.                 if(a==1)
  12.                 {
  13.                         return 0;
  14.                 }
  15.                 System.out.println( (ysf(a-1,b) +b) % a);
  16.                         return (ysf(a-1,b) +b) % a;
  17.                 }
  18. }
复制代码

作者: 李三思第一次    时间: 2015-10-11 20:23
楼上都是大神啊!膜拜!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2