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

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

Форум «Всё о Паскале» _ Задачи _ Число

Автор: Васьок 19.03.2005 19:20

Задано целое число N (1 <= N <= 250), выведите точное значение
величины 1/(2^N) [ заметим, что 2^(-N) = 1/(2^N) ]. Ответ выводите
в виде "0.x..." без хвостовых нулей.

PROBLEM NAME: nptwo

Формат вывода:

* Строка 1: Одно целое число N.

Пример ввода (файл nptwo.in):

67

Формат вывода:

* Строка 1: Десятичное представление величины 1/(2^N).

Пример вывода (файл nptwo.out):

0.0000000000000000000067762635780344027125465800054371356964111328125

Автор: volvo 20.03.2005 1:29

Все гораздо проще, чем кажется... Путем несложных математических преобразований приходим к тому, что:
2^(-n) = (0.1 * 5)^(n), следовательно достаточно подсчитать 5^(n) с использованием длинночисленной арифметики и дополнить это число до N цифр нулями спереди...

Алгоритмы работы с длинными числами выложены здесь: http://forum.pascal.net.ru/index.php?showtopic=2428