分糖果代码

public static void main(String[] args) {
    int[] arr = {10, 2, 8, 22, 16, 4, 10, 6, 14, 20};
    int j = 0;
    while (!kin(arr)) {
           mean(arr);
           j++;
    }
    System.out.printf("分%d次6+小朋友手里的糖果相等,糖果数量为%d",j,arr[5]);
}

/**
 * 计算平均  奇数 加1
 * @param arr
 */

private static void mean(int[] arr) {

    int arr9 = arr[9];//第一个小朋友
    for (int i = arr.length-1; i > 0; i--)
    {
       arr[i] = arr[i]/2 + arr[(i -1)]/2;
    }//分一半给下个小朋友

       //最后一个小朋友给第一小朋友一半
      arr[0] =arr9 /2+arr[0]/2;
    for (int i=0; ilength; i++) {
        if (arr[i] % 2 != 0) {
            arr[i] += 1;
        }
        }
    }

/**
 * 判断是否相等
 * @param arr
 * @return
 */
private static boolean kin(int arr[])
    {
    int count=0;

    for (int i=arr.length-1;i>0;i--){

    if (arr[i]==arr[i-1])
    {
    count++;
    }
    }
    if (count==arr.length-1){
        return true;
    }
       return false;
    }
}

你可能感兴趣的:(分糖果代码)