编程题:分苹果_同学分苹果的小学题

编程题:分苹果_同学分苹果的小学题题目描述n只奶牛坐在一排,每个奶牛拥有ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案不存在输出-1。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含一个整数n(1<=n<=100),接下来的一行包含n个整数ai(1&l…

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

Jetbrains全系列IDE稳定放心使用

题目描述

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

输入描述:

每个输入包含一个测试用例。每个测试用例的第一行包含一个整数 n(1 <= n <= 100),接下来的一行包含 n 个整数 ai(1 <= ai <= 100)。

输出描述:

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

输入

复制

4
7 15 9 5

输出

复制

3

思路:

数学问题,依次判断即可。首先输入的是n个奶牛,然后输入一行每个奶牛的苹果数。
计算所有奶牛拥有的苹果总数,平均数。总数不能整除奶牛数则返回-1
依次判断每个奶牛拥有的苹果是否大于平均数,大于的判断超出的值是否能整除2,不能则返回-1
能则将超出的数加起来,除以2即为需要转移的次数

代码:

package net.stxy.one.controller;

/**
 * Created by ASUS on 2018/5/31
 *
 * @Authod Grey Wolf
 */


import java.util.Scanner;

public class Test2 {


    public static void main(String[] args) {
        Test2 test2 = new Test2();
        test2.sys1();

    }

    private void sys1() {
        Scanner scanner = new Scanner(System.in);
        int i, n = 0;
        //计算总数
        int sum = 0;
        //平均数
        int averg = 0;
        int[] arr;
        n = scanner.nextInt();
        arr = new int[n];

        for (i = 0; i < n; i++) {
            arr[i] = scanner.nextInt();
            sum += arr[i];
        }
        averg = sum / n;
        //超过的值
        int over = 0;
        //统计超出的总数
        int overSum = 0;
        for (i = 0; i < n; i++) {
            if (arr[i] > averg) {
                over = arr[i] - averg;
                //如果超过的值不能对2整除,无解,因为要每次移动2个苹果
                if (over % 2 != 0) {
                    System.out.println("-1");
                    return;
                } else {
                    //统计一共超过平均值的数量
                    overSum += over;
                }
            }
        }
        if (sum % n != 0) {
            System.out.println("-1");
        } else {
            //移动的次数就是超过平均值的总数整除每次移动的个数
            System.out.println(overSum / 2);
        }
    }

    

}

效果:

4
7 15 9 5
3

我的座右铭:不会,我可以学;落后,我可以追赶;跌倒,我可以站起来;我一定行。

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

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

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


相关推荐

  • ubuntu常用软件包deb的安装与卸载

    ubuntu常用软件包deb的安装与卸载【更详细得教程,以及获取软件包,关注公众号木石说:mushiwords。回复‘ubuntu’关键字即可免积分免费获取Ubuntu下软件包列表】。Ubuntu下的软件管理主要使用的是apt-get(现在广泛使用的是apt)以及dpkg两个管理工具,apt可以说是apt-get的升级版本,Ubuntu16.04发布时,一个引人注目的新特性便是apt命令的引入,之后越来…

    2022年5月18日
    39
  • 颜色校准调整伽马_色彩gamma什么意思

    颜色校准调整伽马_色彩gamma什么意思目录1、色彩矫正(CCM)2、伽马校正(Gamma)1、色彩矫正(CCM)色彩校正(ColorCorrection)是指用相同的方法改变图像中的所有像素的颜色值,以得到不同得显示效果。图像采集系统在获得数字图像时,由于一起或环境光照或人为因素的影响,采集的图像往往与原始图像有很大差别。颜色校正可以在一定程度上减少这种差别。利用RGB颜色模型可以方便地调整图像的RGB分量值,这对校正偏色很有用。色彩校正的基本原理如下:其中,Mij…

    2022年9月16日
    4
  • Vue生成二维码_vue实现扫描二维码

    Vue生成二维码_vue实现扫描二维码效果代码npminstallvue-qr–save<template><divclass=”sg-qrcode”><vue-qr:text=”qrcodeText”:correctLevel=”3″:size=”250″:margin=”10″colorDark=”#2ba245″

    2022年10月3日
    2
  • CentOS7安装Oracle11G完整版图文教程

    CentOS7安装Oracle11G完整版图文教程系统环境:CentOSLinuxrelease7.4.1708(Core)Oracle版本:OracleDatabase11gR2注意事项:安装的过程可能遇到假死现象,直接回车即可如果遇到中文乱码:新建一个目录,上传字体包zysong.ttf到新建的目录,命令如下:#mkdir–p/usr/share/fonts/zh_CN/TrueType#cd/usr…

    2022年5月29日
    76
  • PyCharm激活码永久有效PyCharm2020.2.4激活码教程-持续更新,一步到位

    PyCharm激活码永久有效PyCharm2020.2.4激活码教程-持续更新,一步到位PyCharm激活码永久有效2020.2.4激活码教程-Windows版永久激活-持续更新,Idea激活码2020.2.4成功激活

    2022年6月19日
    34
  • 以太坊私有链搭建_以太坊节点减少

    以太坊私有链搭建_以太坊节点减少网上关于如何搭建私链的文章很多,但是看来看去都是一样的,千篇一律,想找点不一样,新鲜的知识很难,本文总结归纳那些文章的内容,从使用私链的角度出发写了一篇比较全面的博客,内容包含以下几点:windows单节点 windows多节点 linux创建节点并,windows远程使用linux节点 linux节点和Windows节点建立连接(网络原因,提供思路)1.windows单节…

    2022年10月8日
    2

发表回复

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

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