• + 0 comments
    (defn myprint[s] 
        (println 
            (clojure.string/replace (clojure.string/replace (str s) #"\]" "") #"\[" "")
        )
    )
    (defn level [i l d cur]
      (if (= i (- l 1)) (conj cur 1)
        (do 
          (let [lastLevel (nth d (- l 2))]
            (let [value (+ (nth lastLevel i) (nth lastLevel (- i 1)))]
              (recur (+ i 1) l d (conj cur value))
              )
          )
        )
      )
    )
    
    (defn pascal [n c d]
      (if (> c n) d 
        (do
            (if (= c 1) 
                (do
                  (myprint [1])
                  (recur n (+ c 1) [[1]])
                  )
                (if (= c 2) 
                    (do
                      (myprint [1 1])
                      (recur n (+ c 1) (conj d [1 1]))
                      )
                      (let [curLev (level 1 c d [1])]
                        (do
                            (myprint curLev)
                            (recur n (+ 1 c) (conj d curLev))
                          )
                        )
                  )
              )
          )
      )
    )
    
    (defn pascalDriver[n]
      (pascal n 1 [])
      )
    (pascalDriver (read-string (read-line)))