zj9831
幼苗
共回答了19个问题采纳率:100% 举报
public class ShuYu {
public static void main(String[] args) {
int ary1[] = { 10, 2, 8, 22, 16, 4, 10, 6, 14, 20 };
int ary2[] = new int[10];
run(ary1, ary2);
}
/**
* 给橘子.
* @param ary1
* @param ary2
*/
public static void aryAdd(int ary1[], int ary2[]) {
for (int i = 0; i < ary1.length; i++) {
// 给右边的一半橘子
if (i != ary1.length - 1) {
ary1[i] = ary1[i] + ary2[i + 1];
} else {
ary1[i] = ary1[i] + ary2[0];
}
}
ary2 = new int[10];
}
/**
* 对半分橘子.
* @param ary1
* @param ary2
*/
public static void aryBreakUp(int ary1[], int ary2[]) {
for (int i = 0; i < ary1.length; i++) {
if (ary1[i] % 2 == 1) {
// 奇数的时候找老师要一个
ary1[i] = ary1[i] + 1;
}
ary2[i] = ary1[i] = ary1[i] / 2;
}
}
/**
* 查看是否每个人手上的橘子数一样.
* @param ary1
* @param ary2
*/
public static boolean checkAry(int ary1[]) {
int i = ary1[0];
for (int j : ary1) {
if (j != i) {
return false;
}
}
return true;
}
/**
* 开始跑.
* @param ary1
* @param ary2
*/
public static void run(int ary1[], int ary2[]) {
int loop = 0;
while (!checkAry(ary1)) {
loop++;
aryBreakUp(ary1, ary2);
aryAdd(ary1, ary2);
System.out.print("loop " + loop + ": ");
aryPrint(ary1);
}
}
/**
* 打印数组.
* @param ary1
* @param ary2
*/
public static void aryPrint(int ary[]) {
for(int i : ary) {
System.out.print(i + " ");
}
System.out.print("n");
}
}
1年前
5