Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

Доброго времени суток.
Помогите решить, пожалуйста задачу.
Условие: В магазины должны были поставить телевизоры в одинаковом количестве. Но из-за путаницы в один магазин поставили 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, 13:00   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 11,085
Репутация: 1862

icq: 216409213
По умолчанию

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

Цитата:
Сообщение от p51x Посмотреть сообщение
Если остаток от деления всех телевизоров на колво магазинов = 0, то решение есть
Код:

if (s mod k<>0) then write ('No')

Другую часть вашего объяснения не могу понять.
Я правильно понял: Перебирать элементы массива и от них отнимать с/а. Если результат положительный, то это и есть количество.
Если я понял неверно, не могли бы вы дать свою часть кода этого участка работы программы.
Спасибо
kim-im вне форума   Ответить с цитированием
Старый 05.02.2018, 14:06   #4
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,621
Репутация: 5213
По умолчанию

Цитата:
Сообщение от 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, 11:23   #5
kim-im
Пользователь
 
Регистрация: 07.11.2017
Сообщений: 20
Репутация: 10
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посчитать количество сравнений и перестановок в сортировке бинарными вставками EDWIN503 Общие вопросы C/C++ 4 04.03.2017 14:16
Составление программы для решения уравнения serg1032 Паскаль 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


01:41.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru