【藍橋杯】分糖果(2014預賽java-B7)

來源:互聯網
上載者:User

標題:分糖果

有n個小朋友圍坐成一圈。老師給每個小朋友隨機發偶數個糖果,然後進行下面的遊戲: 每個小朋友都把自己的糖果分一半給左手邊的孩子。 一輪分糖後,擁有奇數顆糖的孩子由老師補給1個糖果,從而變成偶數。 反覆進行這個遊戲,直到所有小朋友的糖果數都相同為止。 你的任務是預測在已知的初始糖果情形下,老師一共需要補發多少個糖果。

【格式要求】 程式首先讀入一個整數N(2<N<100),表示小朋友的人數。 接著是一行用空格分開的N個偶數(每個偶數不大於1000,不小於2) 要求程式輸出一個整數,表示老師需要補發的糖果數。

例如:

輸入3

2 2 4

程式應該輸出:4

 

import java.util.Scanner;public class DistributeSweet {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] a = new int[n];int i,b,count = 0,sum = 0;for(i = 0;i < n;i ++){a[i] = sc.nextInt();}sc.close();while(true){for(i = 0;i < n;i ++){a[i] /= 2;}b = a[0];for(i = 0;i < n - 1;i ++){a[i] += a[i + 1];}a[n - 1] += b;for(i = 0;i < n;i ++){if(a[i] % 2 != 0){a[i] ++;count ++;}}for(i = 1;i < n;i ++){if(a[0] != a[i]){break;}else{sum ++;}}if(sum == n - 1){System.out.println(count);break;}}}}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.