題目:10個小孩圍成一圈分糖果,老師分給第乙個孩子10塊,第二個小孩2塊,後面依次分的糖果數量為8、22、16、4、10、6、14、20。然後所有的小孩同時將手中的糖果分一半給右邊的小孩,糖果為奇數的可向老師要一塊。問經過幾次後,大家手中的糖果的塊數將一樣多,每個人有多少糖果。
解題思路:
(1)先初始化乙個陣列,這個陣列長度為10,元素分別為每個孩子的糖果數
(2)判斷每個孩子手中的糖果數是否一樣,即判斷陣列的每個元素是否相等
a. 定義乙個計數器,每判斷一次相等,計數器+1,如果計數器的次數為陣列的長度-1,則每個孩子手裡的糖果數一樣多
(3)分糖果,每個孩子的糖果=前乙個孩子糖果數一般+自己糖果數一半,分完後為奇數的再找老師要乙個
(4)用乙個計數器計算分糖果的次數
**:
publicstatic voidmain(string args) ;
intcount= 0; //
計算分了多少次
while(!issame(arr))
system.out
.printf("分%d
次後小朋友手裡糖果相等,糖果數為
%d",count,arr[0]);
}/**
* 獲取前乙個人的糖果的一般加上自己手裡的一半
* 分完自己為奇數則找老師要乙個
*@param arr待分的陣列
*@return返回分完後的陣列
*/private static intdistributecandy(intarr)
//奇數個糖塊的同學再找老師要一塊
for(inti=0; ilength;i++)
}returnarr[9];
}/**
* 判斷每個小朋友的糖果數是否相等
* 定義乙個
count
計數器* 比較次數為陣列長度
-1時說明全部比較過了,
* 則每個小朋友手裡的糖果一樣多
*@param arr待判斷是否每個元素都相等的陣列
*@returntrue:陣列元素都相等
false:
陣列元素不完全相等
*/private static booleanissame(intarr)
}if(count== arr.length-1)
returnflag;}
執行結果:分16次後每個孩子手裡的糖果是18個
在寫程式時,應該先寫思路,如果自己是初學寫程式,應該將思路寫得足夠細,再將思路翻譯成相
應的計算機語言,這樣寫程式會簡單很多。並且,每寫完乙個程式應該做相應的總結和思考,因此要寫心得 體會。
寫函式時要對函式進行相應的注釋,這樣做能提高**的可讀性,並且能清楚的看到函式的功能。
分糖果問題(java)
10個小孩圍成一圈分糖果,老師分給第乙個小孩10塊,第二個小孩2塊,第三個小孩8塊,第四個小孩22塊,第五個小孩16塊,第六個小孩4塊,第七個小孩10塊,第八個小孩6塊,第九個小孩14塊,第十個小孩20塊。然後所有的小孩同時將手中的糖分一半給右邊的小孩 糖塊數為奇數的人可向老師要一塊。問經過幾次後大...
LeetCode 575 分糖果(java實現)
給定乙個偶數長度的陣列,其中不同的數字代表著不同種類的糖果,每乙個數字代表乙個糖果。你需要把這些糖果平均分給乙個弟弟和乙個妹妹。返回妹妹可以獲得的最大糖果的種類數。示例 1 輸入 candies 1,1,2,2,3,3 輸出 3 解析 一共有三種種類的糖果,每一種都有兩個。最優分配方案 妹妹獲得 1...
用函式寫幾道題。
1.實現乙個函式,列印乘法口訣表,口訣表的行數和列數自己指定,輸入9,輸出99口訣表,輸入12,輸出1212的乘法口訣表。define crt secure no warnings include includevoid mul int n 自定義的乘法函式。int main 2.使用函式實現兩個數...