小孙


私信TA

用户名:2409244461

访问量:9548

签 名:

这是一个废物

等  级
排  名 294
经  验 5625
参赛次数 1
文章发表 40
年  龄 19
在职情况 学生
学  校 河南工业职业技术学院
专  业 软件技术

  自我简介:

解题思路:

      1,首先将原本糖果个数和要给左边孩子的糖果个数分为两个数组分别为ar1[i]和ar2[i],

           ar2[i]为ar1[i]的1/2,ar1[i]变为1/2表示有一半糖果被移走,为下一步与左边孩子分

           到的糖果ar2[i]进行相加做好铺垫。


     2,第一个循环把自己要分给左边孩子的糖储存进ar2[i]中,然后自身的值/2,不过因为

          小朋友是围圈坐在一起的,所以最后一位孩子要给第一位孩子糖果,所以要设置个if,

          当到最后一位时候,让他去给第一位孩子糖果。


     3,第二个循环是加上旁边孩子给的糖果,因为我们把要拿到的糖果储存到了ar2里面,

          所以这里直接相加就好。


     4、最后判断糖果的个数,糖果个数为奇数孩子的糖果数目+1,使其变为偶数。然后判断

          孩子手里的糖是否相等,因为我们在循环开头就让boo = false,这样到后面判断时候,

          孩子手里面的糖不相等的时候就让boo = true 继续执行。如果相等就会停止循环。

注意事项:

           题目其实很简单,给的条件很明确,用代码模拟就好了,弄明白思路很简单的哦。 

                       (核心在于模拟场景

参考代码:

import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] ar1 = new int[n];
        int[] ar2 = new int[n];
        for (int i = 0; i < n; i++) {
            ar1[i] = sc.nextInt();
        }
        boolean boo = true;
        int sum = 0;   // 补发的棒棒糖
        while (boo){
            boo = false;
            for (int i = 0; i < n; i++) { // 把要给左边小朋友的糖保存在ar2里面,然后自身糖果减半 = ar1[i]/2。
                if (i == n-1){
                    ar2[0] = ar1[i]/2;
                    ar1[i] = ar1[i]/2;
                }else {
                    ar2[i+1] = ar1[i]/2;
                    ar1[i] = ar1[i]/2;
                }
            }
            for (int i = 0; i < n; i++){ //  把旁边小朋友给的糖果加上
                ar1[i] += ar2[i];
            }
            for (int i = 0; i < n; i++) { // 判断小朋友手里的糖果是否为奇数,是的话sum加一
                if (ar1[i]%2 != 0){
                    ar1[i] += 1;
                    sum += 1;
                }
                if (ar1[0] != ar1[i]){ // 判断小朋友手里面的糖果是否相等
                    boo = true;
                }
            }
        }
        System.out.println(sum);
    }
}


 

0.0分

12 人评分

  评论区


                        
2022-03-28 16:08:39
  • «
  • 1
  • »