1034 Candy Sharing Game

蓝桥杯没有自己满意的奖 继续加油 往前看 加油 加油加油

这道题不难 主要是每个人都是同时传给隔壁的人 所以 用一个temp该位置要传给下一位多少个糖果 temp2 是上一位传给现在位置有多少个糖果 依次类推 直到所有值相同跳出循环 输出值

import java.util.*;
 
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while (sc.hasNext()) {
			int num = 0;
			boolean flag = false;
			int n = sc.nextInt();
			int m = n;
			if (n != 0) {
				int arr[] = new int[n];
				// 把所有的都存进去 因为是同时交互的 原地变即可
				while (m-- > 0)
					arr[m] = sc.nextInt();
				while (!flag) {
					int t = arr[0];
					int i = 0;
					// 先遍历一遍看是不是所有的值都是相等的
					for (; i < n; i++) {
						if (arr[i] != t) {
							num++;
							break;
						}
					}
					if (i == n) 
						flag = true;
					else if (i != n) {
						int temp = arr[n - 1] / 2;
						int temp2;
						for (int x = 0; x < n; x++) {
							temp2 = arr[x] / 2;
							arr[x] = arr[x] / 2 + temp;
							temp = temp2;
							if (arr[x] % 2 != 0)
								arr[x]++;
						}
					}
				}System.out.println(num + " " + arr[0]);
			}
		}
	}
}
原文地址:https://www.cnblogs.com/cznczai/p/11150177.html