0
我想要做的是拿兩個列表並將它們加在一起,就像每個列表是一個整數。使用數字列表的任意精度加法
(define (reverse lst)
(if (null? lst)
'()
(append (reverse (cdr lst))
(list (car lst)))))
(define (apa-add l1 l2)
(define (apa-add-help l1 l2)
(cond ((and (null? l1) (null? l2)) '())
((null? l1) (list (+ (apa-add-help '() (cdr l2)))))
((null? l2) (list (+ (apa-add-help (cdr l1) '()))))
((>= (+ (car l1) (car l2)) 10)
(append (apa-add-help (cdr l1) (cdr l2))
(list (quotient (+ (car l1) (car l2)) 10))
(list (modulo (+ (car l1) (car l2)) 10)))) ;this is a problem
(else (append (apa-add-help (cdr l1) (cdr l2))
(list (+ (car l1) (car l2)))))))
(apa-add-help (reverse l1) (reverse l2)))
(apa-add '(4 7 9) '(7 8 4))
>'(1 1 1 5 1 3)
我知道這個問題是在我的遞歸圍繞,我顛倒了列表的順序,以便更容易的過程,但我似乎無法理解如何添加我的模值(超值攜帶)到列表中的下一個對象。我怎樣才能做到這一點?
我對你的代碼有什麼困惑,什麼是循環函數?並攜帶0? – LostSchemer
查看我編輯的_named let_。進位是10以上的值,繼續進行下一次加法除以10. – uselpa
好吧,我現在看到它,還有一個問題....什麼是水庫? – LostSchemer