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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2014, 01:32   #1
kea75
Новичок
Джуниор
 
Регистрация: 07.04.2014
Сообщений: 1
По умолчанию В заданном строкой S натуральном N-разрядном числе упорядочить цифры так, чтобы получить наибольшее число из тех же цифр

написать программу на языке паскаль,которая считывает с клавиатуры строку S, состоящую из цифр. В заданном строкой S натуральном N-разрядном числе упорядочить цифры так, чтобы получить наибольшее число, записанное теми же цифрами. Строка S не пустая и содержит не более 200 символов. Строка S состоит только из цифр.
kea75 вне форума Ответить с цитированием
Старый 07.04.2014, 02:45   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Достаточно упорядочить элементы строки по убыванию, как обычный массив.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 07.04.2014, 06:42   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
по убыванию
по невозрастанию если быть точным

И да.. упорядочивать нужно правильно.. за один проход.. завести другой массив a : array ['0'..'9'] of Integer; и Inc(a[s[i]]).. на всякий случай, можно еще и проверять, является ли символ цифрой..
Poma][a вне форума Ответить с цитированием
Старый 07.04.2014, 08:21   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Poma][a, к чему все эти сложности?!
Просто отсортировать массив S и всё.
Хоть тем же пузырьком/обменом!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.04.2014, 14:10   #5
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Poma][a, к чему все эти сложности?!
Серж, а Вы про какие сложности?
Кода получится меньше чем при пузырьке\обмене.. Да и работать будет быстрее.. и понять проще
Poma][a вне форума Ответить с цитированием
Старый 07.04.2014, 14:44   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Ну да, согласен, решения по объёму кода сопоставимые, но Ваш вариант намного эффективнее по быстродействию...

способ со сортировкой
Код:
  Readln(S);

  {сортировка массива}
  for i:=1 to Length(S)-1 do
    for j:=i+1 to Length(S) do
      if S[i]<S[j] then
        begin
          ch := S[i];  S[i] := S[j];  S[j]:= ch
        end;

  WriteLn(S);
способ со счётчиками:
Код:
  Readln(S);

  {обнулить массив счётчиков}
  for ch:='0' to '9' do a[ch] := 0;

  {заполнение массива}
  for i:=1 to Length(S) do
     if S[i] in ['0'..'9'] then Inc( a[S[i]]);

  {вывод результата}
  S := '';
  for ch:='9' downto '0' do
      for i:=1 to a[ch] do S := S + ch;

  WriteLn(S);

p.s. писал тут, на форуме, мог где-нибудь малость напортачить...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пользовательские функции: Напишите функцию, которая вычисляет сумму цифр в заданном натуральном числе BaTpyXaaa Общие вопросы C/C++ 2 04.03.2014 19:19
Упорядочить массив так, чтобы вначале размещались четные цифры в порядке возрастания, а затем нечетные - в порядке убывания Маруся171996 Паскаль, Turbo Pascal, PascalABC.NET 1 22.11.2013 17:42
Определить превышает ли сумма крайних цифр сумму средних цифр в заданном четырехзначном числе. (Delphi) shablakov Помощь студентам 4 24.06.2013 13:21
Имеется строка из букв и цифр.Преобразовать так,чтобы сначала в ней шли все буквы,затем цифры Natalia91169 Помощь студентам 3 13.03.2012 09:00
Подсчитать количество цифр в заданном числе с++ nagaev Помощь студентам 0 15.02.2012 15:02