用java语言实现约瑟夫环(方法一)

来源:互联网 发布:开票软件金税盘版价格 编辑:程序博客网 时间:2024/06/08 18:40

import java.util.Scanner;
/* * 500个小孩围一圈,数到3的退出,问剩下最后的小孩原来是多少号? * author@ * */public class YueSeFuHuan{public static void main(String[] args){Scanner sca = new Scanner(System.in);System.out.println("输入该游戏的参与人数:");int n = sca.nextInt();System.out.println("输入数到退出的数字:");int m = sca.nextInt();sca.close();int len = n;int[] a = new int[n];for (int i = 0; i < n; i++){a[i] = i + 1;}int i = 0;int j = 1;while (len >= m){if (a[i % n] > 0){ // 这里判断是否被圈出去if (j % m == 0){ // 这里判断是否报的数相同,是则退出该位置,且下一位重新报数// System.out.print(a[i%n]+",");a[i % n] = -1;i++;j = 1;len--;} else{ // 不相同则继续i++;j++;}} else{ // 表示该位置已被圈出,跳向下一位i++;}}for (int k = 0; k < n; k++){if (a[k] > 0)System.out.print(a[k] + ",");}}}


                                             
0 0
原创粉丝点击