A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© BackGaoz 中级黑马   /  2016-4-23 21:36  /  338 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

也叫杀人游戏,就是一共有N个人,从第一个开始进行报数,只要数到3或者3的倍数,就把这个人干掉,也就是删除,一直数到最后一个人,然后接着从第一个人开始数,最后活着的只要一个人就可以。然后看看这个人是多少号、
  1. package com.heima.test;

  2. import java.util.ArrayList;

  3. public class Test8 {

  4. public static void main(String[] args) {
  5. System.out.println(getLucklyNum(8));
  6. }

  7. /*
  8. * 获取幸运数字
  9. * 1,返回值类型int
  10. * 2,参数列表int num
  11. */
  12. public static int getLucklyNum(int num) {
  13. ArrayList<Integer> list = new ArrayList<>(); //创建集合存储1到num的对象
  14. for(int i = 1; i <= num; i++) {
  15. list.add(i); //将1到num存储在集合中
  16. }

  17. int count = 1; //用来数数的,只要是3的倍数就杀人
  18. for(int i = 0; list.size() != 1; i++) { //只要集合中人数超过1,就要不断的杀
  19. if(i == list.size()) { //如果i增长到集合最大的索引+1时
  20. i = 0; //重新归零
  21. }

  22. if(count % 3 == 0) { //如果是3的倍数
  23. list.remove(i--); //就杀人
  24. }
  25. count++;
  26. }

  27. return list.get(0);
  28. }
  29. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马