n个人围成一圈报数,从1报到3,报到3的人退出,然后依次循环,直到剩下最后一人,这人是第几个人?
2014-07-15 21:45
337 查看
n个人围成一圈报数,从1报到3,报到3的人退出,然后依次循环,直到剩下最后一人,这人是第几个人?
import java.util.Scanner;
public class N1_3gerenshu {
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int [] num= new int
;
for(int i=0;i<n;i++){
num[i]=i+1;
}
for(int i=0;i<n;i++){
System.out.print(num[i]+" ");
}
int i=0;
int quitnum=0;
int k=0;
while(quitnum < n-1){
if(num[i]!=0)
k++;
if(k==3){
num[i]=0;
quitnum++;
k=0;
}
i++;
if(i==n)
i=0;
}
System.out.println();
for(int j=0;j<n;j++){
if(num[j]!=0){
System.out.print(num[j]);
}
}
}
}
然后我输入的是12,最后输出的结果是:10
如果大家觉得有意见或者是建议,欢迎探讨!
import java.util.Scanner;
public class N1_3gerenshu {
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int [] num= new int
;
for(int i=0;i<n;i++){
num[i]=i+1;
}
for(int i=0;i<n;i++){
System.out.print(num[i]+" ");
}
int i=0;
int quitnum=0;
int k=0;
while(quitnum < n-1){
if(num[i]!=0)
k++;
if(k==3){
num[i]=0;
quitnum++;
k=0;
}
i++;
if(i==n)
i=0;
}
System.out.println();
for(int j=0;j<n;j++){
if(num[j]!=0){
System.out.print(num[j]);
}
}
}
}
然后我输入的是12,最后输出的结果是:10
如果大家觉得有意见或者是建议,欢迎探讨!
相关文章推荐
- 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
- 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出, 然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
- 有 100 个人围成一个圈,从 1 开始报数,报到 14 的这个人就要退出。然后其他人重新开始, 从 1 报数,到 14 退出。问:最后剩下的是 100 人中的第几个人?
- 有n个人围成一圈,从第1个人开始,1、2、3报数,报至3出局,余下的人继续从1、2、3报数,问:最后剩下的一人是原来的第几号?同时求出被淘汰编号的序列。(要求:用循环队列解决该问题。)
- C语言 约瑟夫圈问题:N个人围成一圈,从第一个人开始按顺序报数并编号1,2,3,……N,然后开始从第一个人转圈报数,凡是报到3的退出圈子。则剩下的最后一个人编号是多少。
- n个人围成一圈,从第一个人开始123报数,报到3的离开,问最后剩下的人是第几个?
- 【算法】n个人围成一圈报数,报到3的退出,下面接着从1开始报,问最后剩下的是谁?
- 有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- 【转】约瑟夫环算法---------题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位.
- 有N个人围成一圈,顺序排列.从第一个人开始报数(从1—>3),凡报到3的退出圈子。问最后留下的是原来第几号的那位?
- N个人围成一圈报数,报到某一个数m的就出局,问你最后剩下来的人的号码?
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- Linux_C练习:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位?
- 有n个人围成一圈,顺序排号,从第一个人开始报数(从1-3报数) 凡报到3的人,退出圈子,问最后留下的那位,是原来的第几号。
- 2. 题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位. 提示:用数组完成
- Java 写有n个人围成一圈,顺序排号,从第一个人开始报数(从1~3报数), 凡报到3的人退出圈子,问最后留下的人原来排在第几号。
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- 整数算法训练02—有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位
- 有10(100人或者n个)个人围成一圈,从第一个人开始报数(报1、2、3),只要报3的人就出去, 然后不停的循环报数,直到最后剩下一个人,计算出这个人最开始的位置。其实就是约瑟夫环问题