Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Поиск определенного элемента последовательности

Автор: Пархом 28.11.2006 13:19

Пиплы плизззз помогите решить задачу по Паскалю! Очень нуно! Я и сам бы её решил, но с моим умом тока на кюлькюляторе считать можно.
Задача следующего содержания:
Последовательность из латинских букв строится следующим образаом. На первом шаге она пустаю На каждом последующем шаге последовательность удваивается,
после чего к ней слева дописывается очередная буква латинского алфовита(a,b,с....)
ПОСТРОЕНИЕ ПОСЛЕДОВАТЕЛЬНОСТЕЙ
1 ШАГ: последовательность пустая
2 ШАГ: a
3 ШАГ: baa
4 шаг: cbaabaa
5 шаг: dcbaabaacbaabaa
ЗАДАЧА состоит в том, на задонном числе N определить символ, который стоит нана Nом месте в последовательности получившейся после 26ого шага.
Заранее пасиба. Оч ень на вас надеюсь товарищи mega_chok.gif

Автор: volvo 28.11.2006 13:47

решение задачи сводится к следующему алгоритму (M - заданная позиция, символ, находящийся в которой предстоит определить):

Код
    1) Вычислим длину №-ой последовательности по формуле L = 2^(N-1) - 1
    2) Если M > L, то буквы нет. Конец работы.
    3) Если M = 1, то буква имеет номер N. Конец работы.
    4) Находим параметры предыдущей последовательности.
      N = N —1
      L = (L —1) / 2
      M = M —1
      Если M > L, то M = M —L
    5) Повторяем от пункта 3).
Запрограммировать сам сможешь?

Автор: hiv 28.11.2006 14:16

Зачем программировать blink.gif После N-того шага на N-том месте будет всегда стоять буква a причем для любого N, кроме первого, когда строка пустая smile.gif

Автор: volvo 28.11.2006 14:37

А нужно определить не после N-го, а после 26-го шага, но в N-ой позиции smile.gif

Автор: Гость 3.12.2006 20:55

Пасиба парни! Я в следующий круг вышел!!! В эту пятницу ещё задач подкину