题目链接
#include<iostream>
#include<vector>
using namespace std;
int main() {
int n;
while (cin >> n) {
if (n == 0) break;
vector<int> nums = vector<int>(n, 0);
int sum = 0;
for (int i = 0; i < n; i++) {
cin >> nums[i];
sum += nums[i];
}
int average = sum / n;
int result = 0;
for (int i = 0; i < n; i++) {
if ((nums[i] - average) > 0) result += (nums[i] - average);
}
cout << result << endl;
cout<< endl;
}
}
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
Integer size = scanner.nextInt();
if (size == 0) {
break;
}
ArrayList<Integer> list = new ArrayList<>();
Integer sum = 0;
for (int i = 0; i < size; i++) {
int num = scanner.nextInt();
sum += num;
list.add(num);
}
Integer average = sum / size;
Integer res = 0;
//由于题目中说明了保证积木总数能被积木堆数整除,那么肯定能够把多出来的转到少的积木堆上面的
for (int i = 0; i < list.size(); i++) {
if (list.get(i) > average) {
res += list.get(i) - average;
}
}
System.out.println(res);
System.out.println();
}
}
}
while 1:
try:
n = int(input())
if n == 0:
break
ls = list(map(int, input().split()))
ls.sort()
m = sum(ls) // n
moves = 0
for i in ls:
moves += abs(i - m)
print(moves//2)
print()
except:
break
package main
import (
"fmt"
)
func main() {
var n int
for {
_, err := fmt.Scanf("%d", &n)
if err != nil || n == 0 {
break
}
nums := make([]int, n)
sum := 0
for i := 0; i < n; i++ {
fmt.Scanf("%d", &nums[i])
sum += nums[i]
}
average := sum / n
result := 0
for i := 0; i < n; i++ {
if (nums[i] - average) > 0 {
result += (nums[i] - average)
}
}
fmt.Println(result)
fmt.Println()
}
}
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
// Write your code here
while ((line = await readline())) {
// 读取输入数组长度
let size = parseInt(line)
if(size == 0) break
let input = await readline()
let arr = input.split(" ").map(Number);
let res = 0;
let sum = 0;
for(let i = 0; i < size; i++) {
sum += arr[i];
}
let aver = sum / size;
for (let i = 0; i < size; i++) {
if (arr[i] - aver > 0) {
res += arr[i] - aver
}
}
console.log(res);
console.log()
}
})();
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
while (scanf("%d", &n) == 1) {
if (n == 0) break;
int *nums = (int *)malloc(n * sizeof(int));
int sum = 0;
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]);
sum += nums[i];
}
int average = sum / n;
int result = 0;
for (int i = 0; i < n; i++) {
if ((nums[i] - average) > 0) result += (nums[i] - average);
}
printf("%d\n\n", result);
free(nums);
}
return 0;
}