要求编写一个java程序:15个地球人和15个火星人乘宇宙飞船访问嫦娥,中途遇到玉兔打劫,飞船受损,船长猪八戒告诉乘客,只有将全船一半乘客投入太空,才能避免全部去见玉帝.于是30个人围成一

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/01 10:51:55

要求编写一个java程序:15个地球人和15个火星人乘宇宙飞船访问嫦娥,中途遇到玉兔打劫,飞船受损,船长猪八戒告诉乘客,只有将全船一半乘客投入太空,才能避免全部去见玉帝.于是30个人围成一
要求编写一个java程序:
15个地球人和15个火星人乘宇宙飞船访问嫦娥,
中途遇到玉兔打劫,飞船受损,船长猪八戒告诉乘客,
只有将全船一半乘客投入太空,才能避免全部去见玉帝.
于是30个人围成一圈,由第1个人数起,依次报数,数到
第9人,便把他投入大海中,然后再从他的下一个人数起,
数到第9人,再将他扔到大海中,如此循环地进行,直到
剩下15个乘客为止.结果15个火星人全部变成了宇宙卫星.
请问,地球人坐在了哪些位置以避免自己被抛出?

要求编写一个java程序:15个地球人和15个火星人乘宇宙飞船访问嫦娥,中途遇到玉兔打劫,飞船受损,船长猪八戒告诉乘客,只有将全船一半乘客投入太空,才能避免全部去见玉帝.于是30个人围成一

这个讲得麻烦,其实只是求循环顺序为9 的倍数的位置 .剩余的就是地球人的位置.

代码待会儿试着写个看看.


被扔出的位置已经算出来了.

第1轮抛出:位置:09

第2轮抛出:位置:18

第3轮抛出:位置:27

第4轮抛出:位置:06

第5轮抛出:位置:16

第6轮抛出:位置:26

第7轮抛出:位置:07

第8轮抛出:位置:19

第9轮抛出:位置:30

第10轮抛出:位置:12

第11轮抛出:位置:24

第12轮抛出:位置:08

第13轮抛出:位置:22

第14轮抛出:位置:05

第15轮抛出:位置:23


整下整个的代码.

import java.util.ArrayList;
import java.util.List;
public class CirclePlus {
    private List<String> seats = new ArrayList<String>();
    //初始化
    public CirclePlus(){
        if(seats.size()>=0){
            for(int i=0;i<30;i++){
                seats.add("位置:"+((i+1)>=10?(i+1):"0"+(i+1)));
            }
        }
    }
       
    //踢人方法
    public void Kick(int num){
        //记录当前被踢人的座位
        int tempseat = 0;
        //当前要踢的座位
        int nowseat = 0;
        //记录当前是第几轮
        int loop = 1;
        //当是15轮时退出
        while(loop<=15){
            //要踢的人的座位号是上次被踢的座位号+num,-1是因为LIST的编号比真实座位号小1
            nowseat = tempseat+num-1;
//          System.out.println("nowseat=="+nowseat+"\ntempseat=="+tempseat+"\nloop=="+loop);
            //如果要踢的超出当前人数范围,则从第一个人开始重新算起(减掉当前人数)
            if(nowseat>=seats.size()){
                //为符合上面踢人座位号(nowseat)计算,除去减掉当前人数(seats.size())外,要加回修正值(上面减掉的1),
                //以保证 要踢人的座位号(nowseat) 是正确的
                tempseat=nowseat-seats.size()-num+1;
                   
            }else{
                //踢人
                System.out.println("第"+loop+"轮抛出:"+seats.remove(nowseat));
                //保存当前被踢的座位号
                tempseat = nowseat;
                //轮次增加
                loop++;
            }
        }
        System.out.println("踢人后剩余的安全座位号:");
        for(String string: seats){
            System.out.println(string);
        }
    }
    public static void main(String[] args) {
        CirclePlus cp = new CirclePlus();
        cp.Kick(9);
    }
}



OK了,换成while循环才弄好.用for循环直接算座位号误差太大了,还是一个个算.

要求编写一个java程序:15个地球人和15个火星人乘宇宙飞船访问嫦娥,中途遇到玉兔打劫,飞船受损,船长猪八戒告诉乘客,只有将全船一半乘客投入太空,才能避免全部去见玉帝.于是30个人围成一 用JAVA编写一个程序,要求生成5个随机数,随机数的取值范围是20到60 用Java编写一个程序,按照倒序输出26个大写英文字母 第一题:通过代码完成两个整数内容的交换.第二题:编写一个程序,实现两个数字的交换.对于他们的要求有点不理解,麻烦举个实例.JAVA 编写 用java 编写一个程序,要求输入圆的半径,求圆的周长,面积.PS:本人是初学者! 用Java编写一个判断三角形的程序要求:用户输入3个数字.程序判断是否为三角形,如果是三角形,判断是否为等腰,等边,并判断直角,锐角,钝角P.S求代码 有一个数组.内放10个整数,要求找出最小的数和它的下标,然后和数组中最前面的元素对换.用JAVA编写并对程序的句子进行解释 编写一个JAVA程序用于将10个同学的成绩保存在数组中,并计算这些同学的平均分和总成绩.要求分别建立求平 编写JAVA程序,实现输出1--100之间所有不能被7整除的数,并求和   要求:每输出4个数据换行显示 用java编写一个程序计算长方形的面积和周长.长方形的宽和高要求从键盘输入.要可以运行的, 用java语言写:已知圆球体积为4/3*PI*r3,试编写一个程序,要求输入圆球半径,经过计算输出圆球的体积 怎么编写“从3个数中选最大的数”java程序谢谢了,编写一个java程序,实现从3个数中选最大的. 求一个计算正方形面积的Java程序编写一个计算正方形面积的Java程序,要求:1.编写一个是Square类,类名为“Square”+你学号的后两位(例如:Square01).要求:该类应有(1)一个描述边长的属性, java 判断奇偶数编写一个程序,判断一个整数是奇数还是偶数 java编写程序输入3个整数排序.并按从小到大输出 用Java编写打印下列图形的程序* * * * * * * $ * * * * * $ $ $* * * $ $ $ $ $* $ $ $$可以告诉我是怎样打草稿分析找规律的吗?第一个图形是倒三角形,第二个是菱形. 用java语言试编写一个程序,输入5个数据,输出其中最大数并输出该最大数在这5个数中的序号老大门 用java编写一个程序,计算1!+2!+3!+4!+5!