解题思路:
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语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:941 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:1072 |
字符逆序 (C语言代码)浏览:706 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:583 |
【偶数求和】 (C语言代码)浏览:460 |
企业奖金发放 (C语言代码)浏览:2462 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:465 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:856 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:399 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:584 |