Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2018, 11:49   #1
kim-im
Пользователь
 
Регистрация: 07.11.2017
Сообщений: 42
По умолчанию Количество перестановок для уравнения

Доброго времени суток.
Помогите решить, пожалуйста задачу.
Условие: В магазины должны были поставить телевизоры в одинаковом количестве. Но из-за путаницы в один магазин поставили a[1], другой - a[2],...,последний-a[n].
Найти наименьшее количество телевизоров, которое нужно перевезти в другие магазины, чтобы количество телевизоров во всех магазинах была равной, или вывести "No", если сделать так невозможно.
Входные данные: в первой строчке n-размерность массива,во второй-элементы массива (все значения целые не более 100)
Выходные данные: ответ.
Пример
4
3 5 7 5
Ответ: 2
По моим размышлениям: Нужно найти среднее арифметическое (с/а) элементов массива. Далее сравнивать элементы со (с/а). Потом от суммы элементов вычесть элементы, равные с/а. А далее не знаю. Помогите, пожалуйста. Спасибо.
Начало моего кода, в конце скорее всего неверно:
Код:
var n,s,k,i,sa:integer;
    a,b:array [1..100] of integer;
begin  
  read(n);
   for i:=1 to n do
    begin
     read (a[i]);
    end;
   k:=0;
   s:=0;
    for i:=1 to n do
     begin
      s:=s+a[i];
      inc(k);
     end;
    sa:=s div k;
    
    for i:=1 to n do
      begin
       if a[i]=sa then
        s:=s-a[i];
      end;
     
     if k:=s div sa;     
   write (k);
 end.
kim-im вне форума Ответить с цитированием
Старый 05.02.2018, 12:00   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Если остаток от деления всех телевизоров на колво магазинов = 0, то решение есть
и
Вам надо найти сумму колво_эл_в_магазине - найденное_нужное по всем магазинам, где эта разница положительна. Это кол-во телевизоров, которые надо вывести.
p51x на форуме Ответить с цитированием
Старый 05.02.2018, 12:35   #3
kim-im
Пользователь
 
Регистрация: 07.11.2017
Сообщений: 42
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Если остаток от деления всех телевизоров на колво магазинов = 0, то решение есть
Код:
if (s mod k<>0) then write ('No')
Другую часть вашего объяснения не могу понять.
Я правильно понял: Перебирать элементы массива и от них отнимать с/а. Если результат положительный, то это и есть количество.
Если я понял неверно, не могли бы вы дать свою часть кода этого участка работы программы.
Спасибо
kim-im вне форума Ответить с цитированием
Старый 05.02.2018, 13:06   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от kim-im Посмотреть сообщение
if (s mod k<>0) then write ('No')
нет.
Код:
if (s mod n<>0) then write ('No')

Цитата:
Сообщение от kim-im Посмотреть сообщение
Другую часть вашего объяснения не могу понять.
Код:
k:=0;
for i:=1 to n do
  if a[i] > (s div n) then Inc(k, a[i]-(s div n));
WriteLn(k);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.02.2018, 10:23   #5
kim-im
Пользователь
 
Регистрация: 07.11.2017
Сообщений: 42
По умолчанию

Большое спасибо. Очень выручили
kim-im вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посчитать количество сравнений и перестановок в сортировке бинарными вставками EDWIN503 Общие вопросы C/C++ 4 04.03.2017 13:16
Составление программы для решения уравнения serg1032 Паскаль, Turbo Pascal, PascalABC.NET 4 20.12.2013 07:22
Количество перестановок. Сортировка слиянием Rostislav2 Общие вопросы C/C++ 0 06.05.2013 14:12
Метод итераций для развязывания нелинейного уравнения(C++) RennarD Помощь студентам 1 31.03.2013 19:50
Перевод уравнения в понятный для паскаля вид. Proofessor Помощь студентам 4 09.06.2011 09:23