我正在尝试使用一个函数来分割两个数字,然后返回它们的商。 我需要使用递归减法来查找商。
我真的不明白怎么做。我想我需要一个计数器变量,每次递归函数时我都会增加1。问题是,我只能将两个参数传递给这个函数:
(定义(除以b)所以我不确定如何使用计数器。
我可以获得一些psudeocode帮助吗?
答案 0 :(得分:0)
Function result <- Divide ( a, b )
counter = 0
while a - b >= 0 do
a = a-b
counter = counter + 1
EndWhile
result = counter
End Function
Algoritm without_title
write "which numbers: "
read a b
result = Divide(a, b)
write "Result: ", result
EndAlgoritm
答案 1 :(得分:0)
计数器隐含在递归中:
(define (divide n d)
(if (< n d)
0
(+ (divide (- n d) d) 1)))
这里 n 是分子, d 是分母;我们假设两者都不是消极的这是一个例子:
> (divide 27 4)
6
如果 d 为0,则无效;你知道为什么吗?
首次启动时,递归思考可能很困难。但是如果你继续瞎扯,你最终会学会递归思考,然后你会想知道为什么你认为这很难。