Вверх ↑
Ответов: 5446
Рейтинг: 323
#1: 2008-09-08 00:16:54 ЛС | профиль | цитата
anderstudio, скоро твой азарт ещё подогрею: почти проверил твоё решение (осталось один длинный тест прогнать), тогда выложу ещё одну задачку.

------------ Дoбавленo:


== Основная задача №1. Чужие числа ==
Введение
Десятичная система счисления состоит из десяти цифр, записываемых в виде "0123456789" (чиса записываются в порядке от наименьшего к наибольшему). Представьте, что вы обнаружили числа, записанные в инопланетной системе счисления, записываемой другими символами, которые могут совпадать, а могут и не совпадать с используемыми в десятичной системе. Например, если инопланетная система счисления представляется символами "oF8", то числа от одного до десяти в этой системе будут иметь вид (F, 8, Fo, FF, F8, 8o, 8F, 88, Foo, FoF).

Задача
Нам хотелось бы иметь возможность работать с числами в произвольной инопланетной системе счисления. Более того, нам бы хотелось иметь возможность переводить произвольные числа между различными инопланетными системами счисления.

Входные данные
Последовательность заданий, каждое из которых содержит следующие элементы:

  • "Чужое" число в исходной системе счисления (alien_num)
  • Исходный язык (source_lang)
  • Целевой язык (target_lang)
Каждый язык представлен списком "цифр", упорядоченных по возрастанию. "Цифры" внутри описания языка не повторяются, все цифры "чужого" числа будут пристутствовать в исходном языке, и первый знак "чужого" числа не будет совпадать с цифрой исходного языка, соответствующей минимальному значению (иными словами, у "чужого" числа нет ведущих нудей). Каждый символ языка будет либо цифрой от 0 до 9, строчной или заглавной латинской буквой, или одним из следующих знаков !"#$ %&'()*+,-./:;<=>?@[\]^_`{|}~

Выходные данные
Для каждого задания система должна вывести строку "Case #", номер (последовательный) задания, и число, записанное символами целевой системы счисления.

Дополнительная информация
На параметры задачи накладываются следующие условия:
1 <= знаков в "чужом" числе <= 4,
2 <= символов исходного языка <= 16,
2 <= символов целевого языка <= 16.

Пример
> 9 0123456789 oF8
< Case #1: Foo
> Foo oF8 0123456789
< Case #2: 9
> 13 0123456789abcdef 01
< Case #3: 10011
> CODE O!CDE? A?JM!.
< Case #4: JAM!

Требования к оформлению
Решение должно быть оформлено в виде мультиэлемента
#sha
Add(MultiElementEx,9964527,364,245)
{
@Hint=#33:Основная задача #1: "Чужие" числа|16:Автор: iarspider|11:Версия: 0.0|
}
BEGIN_SDK
Add(EditMultiEx,14999505,21,21)
{
WorkCount=#8:doNumber|
EventCount=#8:onNumber|
DataCount=#9:alien_num|11:source_lang|11:target_lang|
}
END_SDK

------------ Дoбавленo:


lainX, задание засчитываю, однако для порядку поворчу:

  • Алгоритм не оптимальный. Это задание с подвохом
  • Оформление схемы - на твёрдую тройку. В идеале я должен чётко видеть куда какая связь идёт.
  • Рекомендуется использовать GetDataEx вместо GetData
карма: 1

0