A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© chenxin2015 中级黑马   /  2015-4-26 07:11  /  1421 人查看  /  22 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。

22 个回复

倒序浏览
这个思路不会是就业班入学测试吧?应该是for循环外加continue跟100这个判断条件来做。
回复 使用道具 举报
看我帖子{:3_53:}
回复 使用道具 举报
你还没说需求呢,你是要获得什么结果,没有说清楚
回复 使用道具 举报
for (int x=1;x<=100 ;x++ )//大圈套小圈的原理  
                {
                        for (int y=1;y<=100 ;y++ )
                        {
                       
                                if (x==14)
                                {
                                continue;
                                }
                               
                        }
                       
                }
回复 使用道具 举报

这个只是一部分的代码吧,
回复 使用道具 举报
据说这曾是一道竞赛题。。。
回复 使用道具 举报
学习了!!!
回复 使用道具 举报
顶一下。。。。。。。。。。。。。
回复 使用道具 举报
for的嵌套循环。。。。。
回复 使用道具 举报
顶!。。。。。。。。。。。。
回复 使用道具 举报
嵌套循环
回复 使用道具 举报
我给你思路   定义一个数组  里面放的是Boolean类型的,在定义一个变量用来记录报的数count,然后就是循环一遍以后,count的值依旧在原来的基础上+1;接下来的就是判断了  ;思路通了很简单;依旧写不出来找我要代码
回复 使用道具 举报
有点像。进制一样。。逢14就退出。然后再重新来
回复 使用道具 举报
V_nan 中级黑马 2015-4-27 17:26:20
15#
  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. }
复制代码

这样用可不可以的?
回复 使用道具 举报
楼上的代码像有点问题,当x小于 13时还在循环
回复 使用道具 举报
V_nan 中级黑马 2015-4-27 20:10:50
17#
海带 发表于 2015-4-27 18:51
楼上的代码像有点问题,当x小于 13时还在循环

对啊,发了以后想到的,懒得改了
回复 使用道具 举报
到底想干什么呢?
回复 使用道具 举报
没学过  现在赶紧学习下
回复 使用道具 举报
  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-5-1 18:27
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马