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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Gqg 中级黑马   /  2016-3-31 00:26  /  800 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

7 个回复

倒序浏览
挺难的题
回复 使用道具 举报
2号2号2号2号2号
回复 使用道具 举报
ping3014 来自手机 中级黑马 2016-3-31 01:15:27
板凳
定义一个list集合存储每个人的编号(第几个),做一个无限循环,做判断,如果是第三个就删除,直到剩下一个人结束循环
回复 使用道具 举报
做个判断报道 3就 删除
回复 使用道具 举报
public static int count3(int n){
int[] people=new int[n]
for(int x=0;x<n;x+x){
people[x]=1;
}

int k=0;//3的计数器
int i=0;//人编号计数器
int m=0;//出圈人的计数器
while(m!=(n-1)){//1表示在圈内,0表示出圈
if(people[i]=1){k++;}
else{m++;}
if(k==3){people[i]=0;k=0;}
i++;
if(i==n){i=0;m=0}
}
for(int x=0;x<n,x++){//遍历数组,1是没有出圈的
if(people[x]==1)return x;
}
}

评分

参与人数 1黑马币 +2 收起 理由
洋葱头头 + 2 赞一个!

查看全部评分

回复 使用道具 举报
  1. package com.heima.demo;

  2. import java.util.LinkedList;
  3. import java.util.Scanner;

  4. public class Demo {

  5.         public static void main(String[] args) {
  6.                 Scanner sc = new Scanner(System.in);
  7.                 System.out.println(getLucklyNum(sc.nextInt()));
  8.                 sc.close();
  9.         }

  10.         public static int getLucklyNum(int n) {
  11.                
  12.                 LinkedList<Integer> ll = new LinkedList<>(); //定义一个集合 用于存储数据
  13.                 for (int j = 1; j <= n; j++) {   //将n个人从1编号依次存入集合中
  14.                         ll.add(j);
  15.                 }
  16.                 int count = 1;   //定义一个计数器 用于判断是否是3的倍数
  17.                 for (int index = 0; ll.size() != 1; index++) { //只要集合中不剩下一个  循环就不结束
  18.                         if(index == ll.size())   //当索引超过最大索引值  就将索引值置零
  19.                                 index = 0;
  20.                         if(count % 3 == 0)
  21.                                 ll.remove(index--);   //当报数是3的倍数就删除该元素  然后索引减1
  22.                                
  23.                         count++;          //计数器加1
  24.                 }
  25.                 return ll.get(0);      //返回最后一个人的编号
  26.         }

  27. }
复制代码
回复 使用道具 举报
用递归做
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马