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;
欢迎交流学习

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java批量修改数据库数据_sql批量更新多条数据

    java批量修改数据库数据_sql批量更新多条数据批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:代码如下:UPDATEmytableSETmyfield=’value’WHEREother_field=’other_value’;如果更新同一字段为同一个值,mysql也很简单,修改下where即可:代码如下:UPDATEmytableSETmyfield=’value’WHEREother_…

    2025年6月10日
    3
  • Python实现向量自回归(VAR)模型——完整步骤「建议收藏」

    废话不多说,先开始分享:1.首先啥是VAR模型,我这里简略通俗的说一下,想看代码的童鞋直接跳到第3部分就好了:以金融价格为例,传统的时间序列模型比如ARIMA,ARIMA-GARCH等,只分析价格自身的变化,模型的形式为:其中称为自身的滞后项。但是VAR模型除了分析自身滞后项的影响外,还分析其他相关因素的滞后项对未来值产生的影响,模型的形式为:其中就是其他因子的滞后项…

    2022年4月15日
    1.2K
  • XSS漏洞介绍及反射型XSS

    XSS漏洞介绍及反射型XSS什么是XSS攻击:XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制–例如同源策略(sameoriginpolicy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。XSS分类:类型A,本地利用漏洞,这种漏…

    2022年5月6日
    40
  • datagrip激活【最新永久激活】

    (datagrip激活)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html08G05E7DZH-eyJsaWN…

    2022年3月28日
    628
  • idea构建maven工程_c++怎么创建工程

    idea构建maven工程_c++怎么创建工程介绍如何通过IDEA来搭建Maven聚合工程。

    2022年8月21日
    27
  • acwing1072. 树的最长路径(树形dp)

    acwing1072. 树的最长路径(树形dp)给定一棵树,树中包含 n 个结点(编号1~n)和 n−1 条无向边,每条边都有一个权值。现在请你找到树中的一条最长路径。换句话说,要找到一条路径,使得使得路径两端的点的距离最远。注意:路径中可以只包含一个点。输入格式第一行包含整数 n。接下来 n−1 行,每行包含三个整数 ai,bi,ci,表示点 ai 和 bi 之间存在一条权值为 ci 的边。输出格式输出一个整数,表示树的最长路径的长度。数据范围1≤n≤10000,1≤ai,bi≤n,−105≤ci≤105输入样例:65 1

    2022年8月8日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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