黑马程序员技术交流社区

标题: 一道黑马的测试题? [打印本页]

作者: chenxin2015    时间: 2015-4-26 07:11
标题: 一道黑马的测试题?
有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。
作者: 李桂中    时间: 2015-4-26 08:45
这个思路不会是就业班入学测试吧?应该是for循环外加continue跟100这个判断条件来做。
作者: 栗新岩    时间: 2015-4-26 09:49
看我帖子{:3_53:}
作者: yapo    时间: 2015-4-26 10:02
你还没说需求呢,你是要获得什么结果,没有说清楚
作者: 米江波    时间: 2015-4-26 10:45
for (int x=1;x<=100 ;x++ )//大圈套小圈的原理  
                {
                        for (int y=1;y<=100 ;y++ )
                        {
                       
                                if (x==14)
                                {
                                continue;
                                }
                               
                        }
                       
                }
作者: 1017161726    时间: 2015-4-26 10:51
米江波 发表于 2015-4-26 10:45
for (int x=1;x

这个只是一部分的代码吧,
作者: 大西洋    时间: 2015-4-26 11:12
据说这曾是一道竞赛题。。。
作者: 13699266500    时间: 2015-4-26 11:52
学习了!!!
作者: 巴拉森    时间: 2015-4-26 13:47
顶一下。。。。。。。。。。。。。
作者: yxnheima    时间: 2015-4-26 14:03
for的嵌套循环。。。。。
作者: 程梦真    时间: 2015-4-26 14:49
顶!。。。。。。。。。。。。
作者: wangys9107    时间: 2015-4-26 16:26
嵌套循环
作者: 纳海百川    时间: 2015-4-26 23:39
我给你思路   定义一个数组  里面放的是Boolean类型的,在定义一个变量用来记录报的数count,然后就是循环一遍以后,count的值依旧在原来的基础上+1;接下来的就是判断了  ;思路通了很简单;依旧写不出来找我要代码
作者: fc389119336    时间: 2015-4-27 16:16
有点像。进制一样。。逢14就退出。然后再重新来
作者: V_nan    时间: 2015-4-27 17:26
  1. class Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int x=100;//记录圈内的人数
  6.                 int y=0;//记录报数
  7.                 while(x>0)
  8.                 {
  9.                         y++;
  10.                         if(y==14)
  11.                         {
  12.                                 x--;//报数到14的时候,退出一人
  13.                                 y=0;//重新开始报数
  14.                         }
  15.                 }
  16.         }
  17. }
复制代码

这样用可不可以的?
作者: 海带    时间: 2015-4-27 18:51
楼上的代码像有点问题,当x小于 13时还在循环
作者: V_nan    时间: 2015-4-27 20:10
海带 发表于 2015-4-27 18:51
楼上的代码像有点问题,当x小于 13时还在循环

对啊,发了以后想到的,懒得改了
作者: wangyu    时间: 2015-4-27 21:30
到底想干什么呢?
作者: 高双    时间: 2015-4-27 22:15
没学过  现在赶紧学习下
作者: 菜鸟的求学路    时间: 2015-4-28 00:56
  1. package com.text06;

  2. import java.util.ArrayList;

  3. public class Demo {

  4. /**
  5. *
  6. * 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。
  7. * 然后其他人重新开始,
  8. * 从1报数,到14退出。问:最后剩下的是100人中的第几个人?
  9. *
  10. *                        
  11. */
  12.         public static void main(String[] args) {
  13. //                创建一个集合
  14.                 ArrayList<Integer> arrList = new ArrayList<Integer>();
  15. //                利用循环向集合中添加100个元素
  16.                 for(int i = 1;i<=100;i++){//用数字代替100 个人
  17.                         arrList.add(i);
  18.                 }
  19. //                利用循环控制,报数为14的退出
  20.                 int count = 0;//定义一个计数器
  21.                 loop:
  22.                 while(true){
  23.                         for (int i = 0; i < arrList.size(); i++) {
  24.                                 count++;
  25.                                 if (count %14 == 0) {//能被14整除,说明是数到14的元素
  26.                                         arrList.remove(i);
  27.                                         i--;
  28.                                 }
  29.                                 else if(arrList.size()<14){
  30.                                         break loop;
  31.                                 }
  32.                         }
  33.                 }
  34. //                遍历最后剩下的元素
  35.                 System.out.println(arrList);
  36.         }

  37. }
复制代码

作者: 苟苟    时间: 2015-4-28 09:29
学习。。。
作者: zhuchangbao    时间: 2015-4-28 09:35
这道题挺简单的吧





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