"Все сообщения пользователя slivka"


Страницы: 1
Перевод числа из одной системы счисления в другую
Пользователь: slivka
Сообщений: 4
Статус: Незримый
Зарегистрирован:
27 ноября 2008, 4:56
Был:30 ноября 2008, 18:02
slivka
smsup
Дата: 27 ноября 2008, 5:19 Сообщение №
Как перевести число из одной системы счисления в другую, используя рекурсию
Пользователь: slivka
Сообщений: 4
Статус: Незримый
Зарегистрирован:
27 ноября 2008, 4:56
Был:30 ноября 2008, 18:02
slivka
smsup
Дата: 27 ноября 2008, 5:20 Сообщение №
РЕКУРСИЕЙ
(defun encode (n base &optional tail)
(if (zerop n)
(format t "~{~C~}"(or tail '(#\0)))
(encode (truncate n base) base
(cons (digit-char (rem n base) base) tail))))

TRUNCATE и REM - вычисляют неполное частное и остаток.
(DIGIT-CHAR n base) - переводит число n, меньшее base, в соответствующую литеру-цифру.
ZEROP - проверяет аргумент на равенство 0.
FORMAT - распечатывает список цифр в красивом виде.

Пользователь: slivka
Сообщений: 4
Статус: Незримый
Зарегистрирован:
27 ноября 2008, 4:56
Был:30 ноября 2008, 18:02
slivka
smsup
Дата: 27 ноября 2008, 5:27 Сообщение №
Алгебраическое выражение Сумма(i=1 до n)Сумма(j=1 до n) (i+j)
Пользователь: slivka
Сообщений: 4
Статус: Незримый
Зарегистрирован:
27 ноября 2008, 4:56
Был:30 ноября 2008, 18:02
slivka
smsup
Дата: 27 ноября 2008, 5:28 Сообщение №
(defun summa (n)
(setq result 0)
(Do ((i 1 (+ 1 i)))
((= i n) result)
(Do ((j 1 (+ 1 j)))
((= j n) result)
(setq result (+ result i j))
)))

Страницы: 1