牛客网笔试题目练习------分苹果
2017-08-22 11:40
183 查看
题目描述
n 只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案不存在输出-1
输入描述:
每个输入包含一个测试用例。每个测试用例的第一行包含一个整数 n(1 <= n <= 100),接下来的一行包含 n 个整数 ai(1 <= ai <= 100)。
输出描述:
输出一行表示最少需要移动多少次可以平分苹果,如果方案不存在则输出 -1。
示例1
输入
4 7 15 9 5
输出
3
代码:
#include<stdio.h> int main(){ int apple[200]; int num,Ave; int result=0; int Sum=0,L_Sum=0; int i; scanf("%d",&num); for(i=0;i<num;i++){ scanf("%d",&apple[i]); Sum+=apple[i]; } if(Sum%num == 0){ Ave=Sum/num; for(i=0;i<num;i++){ if((apple[i]-Ave)%2 != 0){ break; } } if(i>=num){ for(i=0;i<num;i++){ if(apple[i]<Ave){ L_Sum+=Ave-apple[i]; } } result=L_Sum/2; } else{ printf("差存在奇数\n"); result=-1; } } else{ printf("平均数不是整数\n"); result=-1; } printf("%d",result); return 0; }
思路:要满足两个条件1:平均数是整数、2:每个数与平均数的差值为偶数。结果为所有小于平均值的数与平均值的差值除以二
相关文章推荐
- 经典C++笔试题目--100(编程练习(比C要难)(91-100))
- 前端笔试题目练习笔记:统计数组中不同的数字出现的概率并排序
- 笔试题目练习
- 前端笔试题目练习
- 牛客网--腾讯java工程师笔试卷---练习改错
- GameLoft智乐软件笔试题目誊抄练习——未完待续
- 2015最新出炉的互联网企业笔试题目。。。。来自牛客网
- 牛客网解题-2017腾讯秋招笔试编程题练习卷
- Java笔试题目总结二(牛客网)
- 牛客网 美团测试开发笔试题 练习
- 一道关于二维数组和指针数组的C语言笔试题目
- 出现的一些好的笔试题目
- 晒晒最近见到的几道笔试题目
- LeetCode Online Judge 题目C# 练习 - Longest Substring Without Repeating Characters
- C++笔试题目大全(笔试宝典)(不断完善中)
- C/C++ 笔试、面试题目大汇总(转)
- Java笔试题目汇总___选择题
- 【知乎答案】2018校招,笔试应该怎么准备?|牛客网回答
- 关于校招笔试题目的思考
- 网易2012校园招聘笔试题目