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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© tongren 初级黑马   /  2016-4-20 18:20  /  671 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/**
  * @param args
  * 约瑟夫环
  * 幸运数字  杀人游戏
  */
public static void main(String[] args) {
  System.out.println(getLucklyNum(8));
}
/*
  * 获取幸运数字
  * 1,返回值类型int
  * 2,参数列表int num
  */
public static int getLucklyNum(int num){
  // 创建一个集合存储1到num的对象
  ArrayList<Integer> list = new ArrayList<>();
  // 创建一个循环
  for (int i = 1; i <=num; i++) {
   // 将1到num存储到集合中
   list.add(i);
  }
  int count = 1; // 用来数数的,只要是3的倍数就杀人
  for (int i = 0; list.size() != 1; i++) { // 只要集合中人数超过1,就要不断的杀
   if (i == list.size()) { // 如果i增长到集合最大的索引+1时
    i = 0; // 重新归零
   }
   if (count % 3 == 0) { // 如果是3的倍数
    list.remove(i--); // 就杀人
   }
   count++;
  }
  return list.get(0);

6 个回复

倒序浏览
感觉好复杂,各种变量
回复 使用道具 举报
嗯,谢谢分享.赞一个,加油!!!
我有点建议,一起讨论一下.
ArrayList<Integer> list = new ArrayList<Integer>();
后边的泛型最好加上.菱形泛型在JDK1.7才出的.
很多公司不用这么高的版本.菱形泛型就用不了
回复 使用道具 举报
学到了!!
回复 使用道具 举报
学写了,谢谢分享
回复 使用道具 举报
guozhicheng 发表于 2016-4-20 22:45
嗯,谢谢分享.赞一个,加油!!!
我有点建议,一起讨论一下.
ArrayList list = new ArrayList();

收到,谢谢指导
回复 使用道具 举报

还好了,只要面向对象玩明白,那就爽歪歪了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马