七夜千叶 发表于 2018-12-27 10:51:03

怎么用java编程积木游戏的题目?

幼儿园老师带领n个小朋友围成一圈做游戏,首先发给每个小朋友任意数量不等的积木,再给得到单数积木的小朋友1个积木凑成双数,然后开始一轮游戏,每个小朋友把自己的积木分一半给坐在左边的小朋友.往下给单数的小朋友加1个凑成双数后做下一轮,就这样一轮一轮做直到所有小朋友的积木数量都相同.编程模拟此过程,输出每一轮各个小朋友积木的数量.

zlj19931010 发表于 2019-1-2 11:43:30

{:10_277:}惨不忍睹的代码:
package com.justsy.army.mgt.bwlist.controller;

import java.util.Scanner;

import org.apache.commons.lang.ArrayUtils;

public class test {
    public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      System.out.print("输入若干个数字(逗号分隔):");
      String nextLine = scanner.nextLine();
      String[] split = nextLine.split(",");
      int[] students = convert2IntArray(split);
      
      //消除奇数
      for( int i = 0;i<students.length;i++ ) {
            if( students % 2 != 0 ) {
                students += 1;
            }
      }
      //开始每轮游戏
      while(!isEveryoneEqual(students)) {
            //给左边
            int giveNext = students / 2;
            for( int i = 0;i<students.length;i++ ) {
                int toAdd = giveNext;
                giveNext = students / 2;
                students = giveNext + toAdd;
            }
            //消除奇数
            for( int i = 0;i<students.length;i++ ) {
                if( students % 2 != 0 ) {
                  students += 1;
                }
            }
            //每轮输出
            System.out.println(ArrayUtils.toString(students));
      }
      
      System.out.printf("每个人都相等了:%d",students);
    }
   
    public static boolean isEveryoneEqual(int[] students) {
      int temp = students;
      for( int i = 1;i<students.length;i++ ) {
            if( students != temp )return false;
      }
      return true;
      
    }
   
    public static int[] convert2IntArray(String[] split) {
      int[] ret = new int;
      for(int i = 0;i<split.length;i++) {
            ret = Integer.parseInt(split);
      }
      return ret;
    }
   
}
页: [1]
查看完整版本: 怎么用java编程积木游戏的题目?