IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Зашифрованное арифметическое выражение
Kirhog
сообщение 14.02.2004 22:05
Сообщение #1





Группа: Пользователи
Сообщений: 3

Репутация: -  0  +


Помогите пожалуйста решить такую задачу:

Задано арифметическое выпажение (сложение или вычитание) над неотрицательными десятичными целыми числами. Синтаксис выражения может быть следующим: первый операнд, оператор (+ или -) второй операнд, символ =, результат оператора (сумма или разность, в соответствии с оператором). Операнд не превышает 999 999 999. Для разности первый операнд должен быть больше или равен второму. В выражении не должно быть пробелов. Прописные латинские буквы замещают некоторые цифры (возможно включая ничего не значащие нули) так, что одинаковые буквы соответству одинаковым цифрам и различные буквы соответствуют различным цифрам. Это гарантирует, что в конце концов такое замещение будет сделано. Задача - восстановить замещенные цифры.
Ввод:  
С клавиатуры вводится строка с зашифрованным арифметическим выражением.
Вывод:
Программа должна вывести несколько строк. Каждая строка описывает одно замещение и содержит букву и соответствующую ей цифру. Цифра и буква должны быть отделены ровно одним пробелом. Вывод должен быть отсортирован по возрастанию букв. Букв, не участвующих в замещении в
списке быть не должно. Если задача имеет несколько решений, достаточно вывести одно из них.
Пример
ввода:
103K+G0G1=CG36
вывода:
C 1
G 0
K 5
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
pascal65536
сообщение 17.02.2004 10:12
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 62
Пол: Мужской

Репутация: -  1  +


Есть мнение - перебор. Будут другие варианты?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Atos
сообщение 20.02.2004 12:09
Сообщение #3


Прогрессор
****

Группа: Модераторы
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

Репутация: -  9  +


А задачка-то интересная... Может, чисто из любви к искусству стоит попробовать. Кто её  задал и сколько времени даётся?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Atos
сообщение 20.02.2004 12:17
Сообщение #4


Прогрессор
****

Группа: Модераторы
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

Репутация: -  9  +


Теоретически, конечно, можно перебором, но может попасться такое выражение, что перебрать надо будет 10 в 9 степени значений. Преджде чем переходить к перебору, надо попытаться как-то разбить числа на разряды и ещё что-то в том же духе сделать. Если будет время, подумаю.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Kirhog
сообщение 21.02.2004 21:41
Сообщение #5





Группа: Пользователи
Сообщений: 3

Репутация: -  0  +


Эта задачка с городской олимпиады
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Kirhog
сообщение 21.02.2004 21:43
Сообщение #6





Группа: Пользователи
Сообщений: 3

Репутация: -  0  +


По идее 1 или 3 секунды.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 27.07.2025 2:39
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"