Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для Silya
0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 6

Задача "Странный максимум"

11.12.2014, 10:37. Показов 1414. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Я хочу как-нибудь сократить свой код, должен быть более короткий способ решения. Заранее спасибо за вашу помощь)

Задача

Мое решение(Можете не смотреть сразу, попробуйте сами решить, если есть время)

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function Max(x:integer):integer;
var
  i,xx,r:integer;
  x1:string;
  err1,err2:integer;
begin
  Str(x,x1);
  i:=1;
  while i<=Length(x1) do
  begin
    Val(x1[i],xx,err1);
    if xx mod 2 = 1 then begin Delete(x1,i,1); end
    else i:=i+1;
  end;
  for i:=Length(x1) downto 1 do
    if x1[i]='0' then x1[i]:=' '
    else break;
  Val(x1,r,err2);
  Max:=r;
end;
 
var
  n,i,mx:integer;
  s:array [0..999] of integer;
begin
  readln(n);
  for i:=0 to n-1 do readln(s[i]);
  
  mx:=s[1];
  for i:=1 to n-1 do
    if (Max(s[i])>Max(mx)) and (Max(s[i])<>Max(mx)) then mx:=s[i];
  writeln(mx);
end.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.12.2014, 10:37
Ответы с готовыми решениями:

Найти максимум из девяти чисел (максимум из трех(максимум из двух)
Найти максимум из девяти чисел (максимум из трех(максимум из двух))

Даны действительные числа х, у, z Вычислить максимум (x.y) + максимум (y.z) + максимум (х z)
1. Даны действительные числа х, у, z Вычислить максимум(x.y) + максимум(y.z) + максимум(х z) 2. Если сумма трех попарно различных...

Задача: последний максимум
Всем привет! Прошу помочь с задачей: Найдите наибольшее значение в списке и индекс последнего элемента, который имеет данное значение...

3
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
11.12.2014, 11:59
Лучший ответ Сообщение было отмечено Silya как решение

Решение

у вас решение не то, чтобы сильно длинное, оно НЕ ПРАВИЛЬНОЕ!

1) не для всех значений возможных чисел оно будет работать. (попробуйте внести, например, такое число: 99999999991357999
(это ещё коротенькое! Ведь по условию задачи число можете иметь 255 знаков!!!)

2) Первое значение вообще игнорируется (вы вводите в массив, начиная с нулевого индекса, а потом - ВДРУГ, начинаете с 1 отссчитывать).

3) зачем ДВЕ проверки: (Max(s[i])>Max(mx)) and (Max(s[i])<>Max(mx))
если первое выполняется, то второе уже ТОЧНО выполняется! Подумайте, почему, если одно число больше другого, то эти числа точно НЕ РАВНЫ

Добавлено через 22 минуты
можно так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
function PetyaStr(s : string) : string;
var
  res : string;
  i : integer;
begin
  res := '';
  for i:=1 to Length(s) do
    if  Not (s[i] in ['1','3','5','7','9']) then
      if (length(res)=0) and (s[i]<>'0')
            or (length(res)>0) then  res := res + s[i];
  PetyaStr := res;
end;
 
function isS1moreS2(s1,s2:string):boolean;
var
  ps1, ps2:string;
  i : integer;
begin
  ps1 := PetyaStr(s1);
  ps2 := PetyaStr(s2);
  
  isS1moreS2 := true;
  if Length(ps1)>Length(ps2) then Exit
  else
    if Length(ps1)=Length(ps2) then isS1moreS2 := ps1>ps2
    else isS1moreS2 := false
end;
 
var
  n,i :integer;
  mx, s : string;
begin
  readln(n);
  ReadLn(mx);
  for i:=2 to n do begin
     readln(s);
     if isS1moreS2(s, mx ) then mx := s;
  end;
  writeln(mx);
end.
1
 Аватар для Silya
0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 6
11.12.2014, 12:42  [ТС]
Цитата Сообщение от Sergio Leone Посмотреть сообщение
у вас решение не то, чтобы сильно длинное, оно НЕ ПРАВИЛЬНОЕ!
Спасибо большое, вы очень мне помогли, я разобрался))
Вот только одно вы не учли. По условиям задачи, Петя вычеркивает все последние нули из числа, которое возвращает ваша функция PetyaStr(), а у вас эти нули остаются.
0
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
11.12.2014, 13:45
Цитата Сообщение от Silya Посмотреть сообщение
По условиям задачи, Петя вычеркивает все последние нули из числа,
нет. Вы неправильно прочитали (или поняли).
Петя вычеркивает ВЕДУЩИЕ нули.

например, число 130904301 у Пети станет 40 (будет число 0040 и будут отброшены слева 00 )
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.12.2014, 13:45
Помогаю со студенческими работами здесь

Задача на максимум.Вектора
даны действительные числа А1,А2..An.Получить последовательность,удалив из исходной все максималымые элементы

Задача на максимум Понтрягина
Добрый вечер! У меня задача на принцип максимума Понтрягина. Задача прикреплена в виде картинки ниже. Поняла, что задача на...

Нерешенная задача на максимум
Суть задачи проста. Задан ряд натуральных чисел 1, 2, 3, ... , 100 Из этого ряда должна быть построена числовая сумма с...

Задача №2958. Максимум
Напишите программу, которая считывает два целых числа a и b и выводит наибольшее значение из них. Числа — целые от 1 до 1000. При...

Задача на максимум и минимум
Помогите найти ошибку пожалуйста//суть задачи:вводить с клавиатуры числа пока не введем 0,после вывести максимум и минимум из этих...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru