如何在clojure中反转此代码的结果?

时间:2017-11-14 00:35:36

标签: clojure pascals-triangle

(defn exp
  [n]
  (if (= n 0) 
      1
      (* 11 (exp (dec n)))))

(defn Pascals
  [n]
  (loop [x  n]
        (when (< 0 x)
              (println (exp (- x 1)))
              (recur (- x 1)))))

我需要像hackerrank那样的Pascal三角形

1 个答案:

答案 0 :(得分:1)

您的功能是在处理时打印,因此翻转结果的唯一方法是翻转过程。

我的意思是,如果你的函数是生成像

这样的向量集合
(map triangle-row (range 1 4)) => ([1 2 1] [1 1] [1])

然后你可以反转那个

的结果

这是你的功能逆转过程:

(defn Pascals
  [n]
  (loop [x  0]
    (when (>= n x)
      (println (exp x))
      (recur (inc x)))))

而不是从n开始并且变为0,它从0开始上升。

但是这并没有解决它在第8行之后没有为pascal的三角形产生正确输出的问题