解题思路:
1、定义两个数组 cn[],bf[]一个用来存放每一回合的糖果数,一个用来存放每一回合分出去的糖果
2、用while进行循环
注意事项:
最后的一个小朋友的糖果是第一个小朋友给的,不要都弄成cn[i+1] 会造成超出数组界限
参考代码:
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
int[] cn = new int[num];
int[] bf = new int[num];
int count=0;//老师分出去的糖果数
for (int i = 0; i < num; i++) {
cn[i] = scanner.nextInt();
}
boolean flag = true;
while (flag) {
int sum=0;//当小朋友的糖果数都相等的时候 sum==num-1
for (int i = 0; i < num; i++) {
bf[i]=cn[i]/2;
cn[i]=cn[i]/2;
}
for (int i = 0; i < num; i++) {
if (i==num-1){
cn[num-1]=cn[num-1]+bf[0];
}else {
cn[i]=cn[i]+bf[i+1];
}
}
for (int i = 0; i < num; i++){
if (cn[i]%2!=0){
cn[i]++;
count++;
}
}
for (int i = 1; i < num; i++){
if (cn[i]==cn[0]){
sum++;
}
}if (sum==num-1){
flag=false;
}
}
System.out.println(count);
}
}
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:688 |
C二级辅导-计负均正 (C语言代码)浏览:658 |
C语言训练-素数问题 (C语言代码)浏览:1661 |
打水问题 (C语言代码)浏览:1072 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:760 |
A+B for Input-Output Practice (II) (C语言代码)浏览:1000 |
C语言训练-求PI* (C语言代码)浏览:614 |
WU-蓝桥杯算法提高VIP-勾股数 (C++代码)浏览:1607 |
完数 (C语言代码)浏览:693 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:902 |