1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| Unconnected |
15.01.2010 22:08
Сообщение
#1
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: 24 |
Привет всем.
Меня заинтересовала задача из соседней темы, про перестановки в числах. Цитата Задача 4 "Сумма двух чисел" Имя входного файла: sum.in Имя выходного файла: sum.out Максимальное время работы на одном тесте: 2 секунды Максимальный объем используемой памяти: 64 мегабайта Заданы три числа: a, b, c. Необходимо выяснить, можно ли так переставить цифры в числах a и b, чтобы в сумме получилось c. Формат входных данных Входной файл содержит три целых числа: a, b, c (0 < a, b, c < 109). Числа разделены пробелом. Формат выходных данных Если искомая перестановка цифр возможна, необходимо вывести в выходной файл слово YES, в противном случае — выведите слово NO. При положительном ответе необходимо вывести во второй строке выходного файла число x, получаемое перестановкой цифр числа a, и число y, получаемое перестановкой цифр числа b, сумма которых равна c. Числа x и y не должны содержать ведущих нулей. Числа в строке разделены пробелом. Примеры входных и выходных файлов sum.in sum.out 12 31 25 ***YES*** **********12 13*** 12 31 26 ***NO*** Вот что я сделал: const m=6; Мой алгоритм перестановок (для трёхзначных чисел) основан на том, что если в числе переносить первую цифру в конец, пока не получится исходное число, а потом поменять 2 и 3 цифры местами и сделать то же самое, то получатся все перестановки.. Например: 123 231 312 меняем, 132 321 213 Получилось 6 перестановок, как раз 3!, как и должно быть. Моя программа почему-то не заполняет корректно массив (процедура Generate). Сообщение отредактировано: Unconnected - 18.01.2010 13:21 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
![]() ![]() |
| volvo |
17.01.2010 12:00
Сообщение
#2
|
|
Гость |
Там не хватает слова Var... Не надо передавать в процедуру массив только как хранилище данных, заполнять его там, и тут же копировать в глобальную переменную. Ибо сразу возникает вопрос: а зачем ты вообще массив передаешь в процедуру?
Я в курсе, что ЗДЕСЬ (в данной программе) это работает... Но у тебя в процедуру передается лишний параметр, от которого можно избавиться (я про num). К тому же внутри процедуры моментально уберется лишний же цикл и условие... И вообще, это - неправильный путь. Правильный - работать с подпрограммами через параметры, а не через побочные эффекты... И опять я убеждаюсь, что все, что делается мной на форуме пропускается мимо ушей... Я ж писал, "Как не надо писать программы", и там говорилось в частности о том, что надо избегать использования глобальных переменных, и о том, что переменная должна описываться как можно ниже в тексте программы - нет, опять этого никто не читает... Неинтересно? Заработало и ладно? Ну, что ж... Больше в этот процесс вмешиваться не буду, пишите, "чтоб работало, сдам и фиг с ним". |
| Lapp |
17.01.2010 13:08
Сообщение
#3
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
volvo, я понимаю твое возмущение:
пишите, "чтоб работало, сдам и фиг с ним". - и я тебя поддерживаю, но Unconnected'а на этот раз это, вроде, не должно касаться, ибо эту задачу он стал делать, вроде как по собственной инициативе из чистого интереса )). На все требуется время, даже на запоминание азбучных истин -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Unconnected Задачи на перестановки 15.01.2010 22:08
volvo Потому что она у тебя вылетает за пределы этого ма... 15.01.2010 22:40
Unconnected Получается, надо константу m сделать равной 7? Всё... 16.01.2010 0:43
volvo Во-первых, я не совсем понял вот этот твой финт:
З... 16.01.2010 1:54
Unconnected Короче, я решил... вроде бы... Добавил кое-что, ко... 16.01.2010 17:37
volvo Мало просто скопировать символы... Надо еще и длин... 16.01.2010 17:40
Unconnected А как установить её, длину, вручную? Может, SetLen... 16.01.2010 17:41
volvo Если у тебя 32-битный компилятор - то SetLength, е... 16.01.2010 17:51
Unconnected Ого, не знал, спасибо за помощь :) 16.01.2010 17:53
Lapp Обычно в подобных случаях генерировать перестановк... 16.01.2010 23:44
Lapp Unconnected, можно я выскажу несколько замечаний?
... 17.01.2010 3:34
volvo А я уже говорил, что надо бы описывать тип (в сооб... 17.01.2010 11:10
Unconnected Короче, переделал я вообще механизм программы, т.к... 17.01.2010 11:31
volvo Ничего не забыл? 17.01.2010 11:46
Unconnected Мм нет вроде, а что, что-то забыл?:) Там массивы у... 17.01.2010 11:53
Unconnected Да, и правда, если добавить var, то переписывание ... 17.01.2010 12:25
Lapp А я уже говорил, что надо бы описывать тип
...
Пос... 17.01.2010 12:41
volvo Это тебе только кажется :)
Это значит что? Ты про... 17.01.2010 12:49
Unconnected
К моим мозгам она чересчур требовательна)) Короч... 17.01.2010 15:28
Lapp К моим мозгам она чересчур требовательна))Ошибаешь... 18.01.2010 4:25
Lapp Так, процесс в целом нам стал более понятен, тепер... 18.01.2010 7:17
Unconnected //подновил время, правил пост 18.01.2010 0:54
Unconnected :good: :yahoo!: :good:
Lapp, спасибо огром... 18.01.2010 10:17
Lapp редкий случай, когда в статье (тянет на неё) я пон... 19.01.2010 2:21
Unconnected Я тут решил для закрепления решить сам задачку на ... 18.01.2010 12:23
volvo
У тебя строка пустая (сам же ее опустошил :) ), з... 18.01.2010 13:21
Unconnected Ага, теперь нормально, только на входных данных 5 ... 18.01.2010 13:24
volvo P.S.
Не совсем так... Это не неизвестное исключени... 18.01.2010 13:25
Unconnected Нормально - в смысле ошибка не вылетает:) А резуль... 18.01.2010 13:48
volvo Еще бы... У тебя переменная res описана локально, ... 18.01.2010 14:08
volvo P.S. На самом деле, твоя задача может решаться вот... 18.01.2010 14:38
Unconnected Ого.. решение короче намного, без множества и запо... 18.01.2010 15:09
volvo Смотри. Начинаем с генерации строки S. Что у тебя ... 18.01.2010 17:17
Unconnected Да, сначала я хотел заполнить строку с двумя непод... 18.01.2010 17:26
Unconnected
Ага, правильно. Надеюсь, эта тема поможет ещё ко... 19.01.2010 7:29
Unconnected И снова я... Уж очень хочется что-то самому полнос... 20.01.2010 0:18
Unconnected Короче я вроде бы разобрался, уже несколько задач ... 20.01.2010 18:19![]() ![]() |
|
Текстовая версия | 15.12.2025 20:55 |