黑马程序员技术交流社区
标题:
逻辑题
[打印本页]
作者:
Gqg
时间:
2016-3-31 00:26
标题:
逻辑题
有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
作者:
sxuing
时间:
2016-3-31 00:35
挺难的题
作者:
性感不是骚
时间:
2016-3-31 00:37
2号2号2号2号2号
作者:
ping3014
时间:
2016-3-31 01:15
定义一个list集合存储每个人的编号(第几个),做一个无限循环,做判断,如果是第三个就删除,直到剩下一个人结束循环
作者:
LiuLiu006
时间:
2016-3-31 01:54
做个判断报道 3就 删除
作者:
dxw
时间:
2016-3-31 05:43
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;
}
}
作者:
菊花爆满山
时间:
2016-3-31 09:59
package com.heima.demo;
import java.util.LinkedList;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(getLucklyNum(sc.nextInt()));
sc.close();
}
public static int getLucklyNum(int n) {
LinkedList<Integer> ll = new LinkedList<>(); //定义一个集合 用于存储数据
for (int j = 1; j <= n; j++) { //将n个人从1编号依次存入集合中
ll.add(j);
}
int count = 1; //定义一个计数器 用于判断是否是3的倍数
for (int index = 0; ll.size() != 1; index++) { //只要集合中不剩下一个 循环就不结束
if(index == ll.size()) //当索引超过最大索引值 就将索引值置零
index = 0;
if(count % 3 == 0)
ll.remove(index--); //当报数是3的倍数就删除该元素 然后索引减1
count++; //计数器加1
}
return ll.get(0); //返回最后一个人的编号
}
}
复制代码
作者:
我本善良。
时间:
2016-3-31 10:31
用递归做
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2