qq_28326071 2015-05-19 09:43 采纳率: 50%
浏览 2489
已采纳

约瑟夫java设计大作业

这是17世纪的法国数学家加斯帕在《数目的游戏问题》中讲的一个故事:15个教徒和15 个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了一个办法:30个人围成一圆圈,从第一个人开始依次报数,每数到第九个人 就将他扔入大海,如此循环进行到仅余15个人为止。问怎样排 法,才能 的使每次投入大海的都是非教徒
的设计思想,java设计大作业

  • 写回答

6条回答 默认 最新

  • 晶晶爱学习 2015-05-19 10:29
    关注

    //a代表教徒,b代表非教徒
    public class Test {

    /**
     * Enter Content.
     * 
     * @author zhangjing
     * @date 2015-5-19
     * @param args
     * @see
     */
    private HashMap map = new HashMap();
    public Test(){
        for(int i= 1 ; i<=30;i++){
            map.put(i, "a");
        }
    }
    private int now = 1;
    
    public void next() {
         if(now==30){
             now=1;
         }else{
             now++;
         }
    }
    
    
    public static void main(String[] arg){
        Test t = new Test();
        int num = 30;
        while(num>15){
            for(int i= 1;i<=9;i++){
                t.next();
                if(i==9){
                    t.map.put(t.now, "b");
                    num--;
                }
            }
        }
        System.out.println(t.map.values().toString());
    }
    

    }
    结果:[b, a, a, b, a, a, b, a, a, b, a, a, b, a, a, a, b, b, a, a, a, a, b, b, a, a, a, a, b, a]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行