Сведите к = 2^n для минимизации умножения


Учитывая следующие проблемы:

;3.3 Tabulate the function k = 2^n for n = 1..50. 
;Do this for the fewest possible multiplications.[3]

Я писал этот ответ:

(defun k (n) (ash 2 (1- n)))

(loop for n from 1 to 50 do
      (format t "k(~a) = ~a ~%" n (k n)))

Что вы думаете?



207
2
задан 22 марта 2011 в 06:03 Источник Поделиться
Комментарии
1 ответ

Если вы используйте 1 вместо 2 , так как номер смены, вам не придется вычесть одно из Н. Т. е. вы можете просто определить к состоянию (аш 1 н).

Другие, чем, что ваш код выглядит нормально.

2
ответ дан 22 марта 2011 в 09:03 Источник Поделиться