(define (incbyD x D)
(if (< x 10)
(modulo (+ D x) 10)
(+ (* 10 (incbyD (round (/ x 10)) D))
(modulo (+ D x) 10))))
测试用例; //这个游戏是正确的输出,因为它将每个值递增4
(incbyD 1234 4)
; ==> 5678
输出错误,应为0856
(incbyD 7523 3)
; ==> 1856
输出错误,87695
(incbyD 54362 3)
; ==> 87795
我虽然逻辑是对的,但显然它似乎并不是一直都在运作。我看到的问题是进位值正在显示。
答案 0 :(得分:0)
将round
替换为floor
。或者,更明确地说,将(round (/ x 10))
替换为(quotient x 10)
。