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