【问题标题】:Clojure - Inclusive RangeClojure - 包含范围
【发布时间】:2018-11-09 00:58:11
【问题描述】:

我正在使用 Clojure 执行以下任务 -

Write a function named get-divisors which takes a number n as input and returns the all the numbers between 2 and √???? inclusive

到目前为止,我有这段代码,它似乎按预期工作:

  (defn get-divisors [n]
   (str (range 2 (Math/sqrt n))))

用户插入和输入,代码将显示 2 和该特定数字的平方根之间的所有数字。 (我知道!get-divisors 是一个可怕的函数名称)

我输入(get-divisors 101) 我得到以下输出 "(2 3 4 5 6 7 8 9 10)" 这是正确的。

但是,问题是当我使用数字 4 时,我得到的结果是 nil 或 (),而实际上我应该得到 2。或者当我输入49 时,我应该得到27 之间的所有数字,但我只能得到26 之间的所有数字。

我在网上搜索了一些信息。但是,我是 Clojure 的新手,与 JavaJavaScript 之类的信息相比,有关此编程的信息似乎很少。我已经阅读了另一个基于类似情况的帖子,但是不幸的是,这些建议/答案对我不起作用。

如果有任何帮助,我将不胜感激。谢谢。

【问题讨论】:

    标签: clojure read-eval-print-loop


    【解决方案1】:

    请参阅the Clojure CheatSheetrangedoes not include the upper bound。所以,一般来说,你可能想要类似的东西

    (range 2 (inc n)) 
    

    或者在你的情况下

    (range 2 (inc (Math/floor (Math/sqrt n))))
    

    还可以查看http://clojure.org

    【讨论】:

    • 非常感谢。我已经接受了你的回答。再次感谢您。祝你有美好的一天!
    猜你喜欢
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 2014-01-19
    相关资源
    最近更新 更多