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

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

Образовательный студенческий форум _ Информатика / Программирование _ Задача на Turbo Basic

Автор: Manager 24.12.2008, 13:03

Благодарю, если кто поможет с решением ) знакомая попросила ))

Даны натуральные числа n, А , ... Аn. Определить количество членов последовательности A1...An удоволетворяющих условию 2^k<Ak<k!

Автор: Inspektor 27.12.2008, 22:34

проблема в том, что этот язык никто не знает или в составлении алгоритма? В алгоритме можно выделить только нахождение 2^k, его надо сдвигом влево на k позиций находить. А языки они вроде все похожи...

Автор: Julia 31.12.2008, 8:02

Что такое "сдвиг влево на k позиций"?

Автор: Inspektor 31.12.2008, 16:02

компьютер работает с двоичными данными, т.е. число 7 он представляет как 111, а 8 как 1000. Сдвиг влево эквивалентен умножению на основание системы счисления(вправо соответственно делению). Было число 111, сдвинули его на позицию влево- 1110, а теперь 2 раза вправо- 11. В паскале сдвиги делаются стандартными операторами shl (влево) и shr (вправо), в сях ещё проще, там >> и <<.
Соответственно 2^k- это 1 shl k.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)