вернуть число с первым установленным битом X - PullRequest
2 голосов
/ 14 июля 2009

Какой более эффективный способ сделать это в ближайшем будущем:

(defn ones
  ([n] (ones n 1 1))
  ([n i res]
    (if (< i n)
      (recur n (inc i) (bit-set res i))
      res)))

желательно, чтобы она все еще "делала правильные вещи", когда дело доходит до числового типа.

1 Ответ

6 голосов
/ 14 июля 2009

Почему бы не взять 2 ^ (X-1) (установив только бит X) и затем вычесть 1?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...