博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
约瑟夫环问题
阅读量:7220 次
发布时间:2019-06-29

本文共 1462 字,大约阅读时间需要 4 分钟。

hot3.png

 

package cn.nevo.reflect;import java.util.Scanner;/***使用数组实现约瑟夫环问题*由m个人围成一个首尾相连的圈报数。*从第一个人开始,从1开始报数,报到n的人出圈,*剩下的人继续从1开始报数,直到所有的人都出圈为止。*对于给定的m和n,求出所有人的出圈顺序.*/public class TestDemo{    public static void main(String[] args){               //提示输入总人数        System.out.println("请输入做这个游戏的总人数:");        Scanner sca=new Scanner(System.in);        int m=sca.nextInt();               //提示输入要出圈的数值        System.out.println("请输入要出圈的数值:");                int n=sca.nextInt();        System.out.println("按出圈的次序输出序号:");                       //创建有m个值的数组        int[] a=new int[m];        //初始长度,以后出圈一个,长度就减一        int len=m;        //给数组赋值        for(int i=0;i
0){ if(a[i%m]>0){ if(j%n==0){//找到要出圈的人,并把圈中人数减一 System.out.print(a[i%m]+" "); a[i%m]=-1; j=1; i++; len--; }else{ i++; j++; } }else{//遇到空位了,就跳到下一位,但j不加一,也就是这个位置没有报数 i++; } } }}
请输入做这个游戏的总人数:10请输入要出圈的数值:3按出圈的次序输出序号:3  6  9  2  7  1  8  5  10  4请输入做这个游戏的总人数:10请输入要出圈的数值:3按出圈的次序输出序号:3  6  9  2  7  1  8  5  10  4请输入做这个游戏的总人数:10请输入要出圈的数值:3按出圈的次序输出序号:3  6  9  2  7  1  8  5  10  4请输入做这个游戏的总人数:10请输入要出圈的数值:3按出圈的次序输出序号:3  6  9  2  7  1  8  5  10  4请输入做这个游戏的总人数:10请输入要出圈的数值:3按出圈的次序输出序号:3  6  9  2  7  1  8  5  10  4

转载于:https://my.oschina.net/xiaomaoandhong/blog/132697

你可能感兴趣的文章
mysql 语句优化
查看>>
SCP 命令参数使用详解(最详细使用指南)
查看>>
windows cmd color setup
查看>>
一些问题
查看>>
ubuntu配置cudnn
查看>>
P1242 新汉诺塔 && UVA10795 A Different Task
查看>>
从零开始学习PYTHON3讲义(十一)计算器升级啦
查看>>
从零开始学习PYTHON3讲义(三)写第一个程序
查看>>
WebGis设计模式
查看>>
cocos2dx ScrollView 测试一 触摸事件优先级和自动调整
查看>>
django 使用mysql数据库的流程
查看>>
Android系统移植与调试之------->如何修改Android设备的默认休眠时间
查看>>
我的Android进阶之旅------>Java文件大小转换工具类 (B,KB,MB,GB,TB,PB之间的大小转换)...
查看>>
uboot 传递的参数 mtdparts
查看>>
六种排序算法C语言版(上)
查看>>
292. Nim Game(easy)
查看>>
ERROR 1786 (HY000)
查看>>
Kubernetes 学习7 Pod控制器应用进阶2
查看>>
Python字符串相加以及字符串格式化
查看>>
11.08 轮换行值
查看>>