每天一到算法题

题目:有一艘海盗船上面有30个海盗,分别为海盗1-30号忽然海盗船撞上了冰山,船上只能留下一个人,船长命令大家循环数数,数到7和7的倍数的人,跳到海里去。

请问最后留下的那个人是第一开始的几号海盗?

分析:

代码:

import java.util.ArrayList; import java.util.List; import java.util.Scanner;

/** * N个人从1到N编号,围城一圈, * 从1开始报数, 数到m时,将m的编号输出,那个船员将会殒命, * 下一个从1再开始报数,直到所有人都出去//由于数的是7或者7的倍数,相当于1234567循环数,数到7就下去 * */

public class Haidao1 { public static void main(String[] args) { List list = new ArrayList(); System.out.println("请输入被困在船上的海盗人数N:"); Scanner sca = new Scanner(System.in); int N = sca.nextInt(); // 提示输入要出圈的数值

System.out.println("请输入要跳下船去的数值M:");

int M = sca.nextInt(); System.out.println("按跳下的次序输出序号:");

//自动装箱这里装入30号 for(int i=0 ;i<N;i++){ list.add(i+1); } int i=-1;

//初始化数值用i来记录 int countX=0;//记录数数的数值

while(list.size()!=0)

{ ++i; i

f(i== list.size())

{ i=0; }

++countX; if(countX==M){//输出 System.out.print(list.get(i)+ " "); list.remove(i); countX=0; i--;//修正 } } System.out.println("输出序号的最后一个就是最后生还的人");} }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一...
    阿里高级软件架构师阅读 3,319评论 0 19
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    开心的锣鼓阅读 3,355评论 0 9
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 5,174评论 0 41
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 1,963评论 0 2
  • 50道经典Java编程练习题,将数学思维运用到编程中来。抱歉哈找不到文章的原贴了,有冒犯的麻烦知会声哈~ 1.指数...
    OSET我要编程阅读 7,198评论 0 9