java面试题csdn_java底层面试题

java面试题csdn_java底层面试题问题是:n只奶牛坐在一排,每个奶牛拥有ai个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案不存在输出-1输出描述:输出一行表示最少需要移动多少次可以平分苹果,如果方案不存在则输出-1。输入例子:471595输出例子:3im…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

问题是:n 只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案不存在输出 -1

输出描述:
输出一行表示最少需要移动多少次可以平分苹果,如果方案不存在则输出 -1。

输入例子:
4
7 15 9 5

输出例子:
3

import java.util.Scanner;

/** * 分苹果问题 * @author cc_小白成长 * */
public class TestApple{ 
   
    public static void main(String[] args) {
        //创建输入
        Scanner sc = new Scanner(System.in);
        //输入整数,
        int n =   sc.nextInt();
        //定义数组,存放输入数据
        int [] arr = new int[n];
        //用于计算所有数的和
        int num = 0;
        //循环输入,并计算输入数字的和
        for(int i = 0 ;i<n ;i++){
            arr[i] = sc.nextInt();
             num+=arr[i];
        }

        //第一次判断 输入的数是否能被整除
        if(num%n!=0){
  
  //能被整除才能实现,每人分的苹果一样
            System.out.println(-1);
            return;
        }
        //经过前面的判断,这里num/n必定是整数
        int avg = num/n;
        //num重置 你可以重新定义变量存结果
        num = 0;
        //循环计算结果
        for(int i = 0;i<n;i++){
            //这里是用户判断奇偶
            /* * 注意 重点1 如果avg是奇数则每人手上都应该是奇数(你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上) */
            if(avg%2!=arr[i]%2){
                //显然不满足条件
                System.out.println(-1);
                return;
            }
            // 用于计算结果
            /* 注意 重点2 我们只需要计算avg>arr[i]或者avg<arr[i]即可得到结果 */ 
             if((avg-arr[i])>0){
                 num += ( avg-arr[i])/2;//除2的目的是每次移动两个苹果
            }
        }
        System.out.println(num);
    }
}

测试
例1:
4
15 7 9 5
结果:3
例2:
92
2 76 20 6 20 10 18 34 44 2 14 30 4 84 16 4 20 10 60 10 40 4 4 54 10 40 40 4 30 8 10 4 4 12 28 20 20 40 4 10 12 10 6 6 12 2 18 28 4 32 2 18 8 54 56 10 18 12 20 18 50 24 30 58 42 62 28 16 6 12 22 8 34 8 14 6 78 4 8 28 6 4 20 4 52 2 28 26 38 64 10 16
结果: 354

需要注意两个重点,以及判断不满足条件的情况果断return;
欢迎交流学习

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/183875.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号