問題描述 有n個小朋友圍坐成一圈。老師給每個小朋友隨機發偶數個糖果,然后進行下面的游戲:
每個小朋友都把自己的糖果分一半給左手邊的孩子。
一輪分糖后,擁有奇數顆糖的孩子由老師補給1個糖果,從而變成偶數。
反復進行這個游戲,直到所有小朋友的糖果數都相同為止。
你的任務是預測在已知的初始糖果情形下,老師一共需要補發多少個糖果。 輸入格式 程序首先讀入一個整數N(2
package lanqiaobei;import java.util.Scanner;public class Main3 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] tang = new int[N]; for(int i=0;i<N;i++){ tang[i] = sc.nextInt(); } int sum=0; boolean re = true; while(re){ int s = 0; for(int i=0;i<N-1;i++){ if(i==0){ s = tang[i]/2; } tang[i] = tang[i]/2+tang[i+1]/2; } tang[N-1] = tang[N-1]/2+s; for(int i=0;i<N;i++){ if(tang[i]%2 !=0){ tang[i]+=1; sum++; } } int bj=0; for(int i=0;i<N-1;i++){ if(tang[i] == tang[i+1]){ bj++; } if(bj==N-1){ re = false; } } } System.out.PRintln(sum); }}新聞熱點
疑難解答