1
我想在保留列表格式的同時在方案中一起添加兩個數字(來自列表)。但是,當用於計算的數字加上大於或等於10的數字時,我會得到不希望的結果。例如:「添加任意精度數字」在方案
(define (reverse lst)
(if (null? lst)
'()
(append (reverse (cdr lst))
(list (car lst)))))
(define (apa-add lst1 lst2)
(cond ((null? lst1) lst2)
((null? lst2) lst1)
((>= (+ (car lst1) (car lst2)) 10)
(append (apa-add (cdr lst1) (cdr lst2))
(list (quotient(+ (car lst1) (car lst2)) 10))
(list (modulo (+ (car lst1) (car lst2)) 10))))
(else
(append (apa-add (cdr lst1) (cdr lst2))
(list (+ (car lst1) (car lst2)))))))
(apa-add (reverse '(4 4 5)) (reverse'(3 5 8)))
回報
'(7 9 1 3)
如何修改我的代碼來解決這個問題?我想使用let
聲明,因此我可以將(quotient (+ (car lst1) (car lst2)) 10)
的評估添加到下一個調用的(list (+ (car lst1) (car lst2)))
,但我無法考慮如何執行此操作。
您的示例中期望的結果是什麼? – uselpa
你想要一個程序來執行與進位算法的手加法,是嗎?你想要回報是'(8 0 3)是嗎? – WorBlux
是的,這是我想要的輸出。 –