我正在致力于一个简单的函数,应该给出x
,返回一个元组(y, z)
,使得y <= abs(5) + z * 10 = x
,其中z
最小的可能值。功能增量
在C中,我会遍历z++
和y++
,直到它们的总和匹配x
。
目前,我正试图在功能上解决这个问题。请考虑以下示例:
let foo x =
let rec aux (y, z, q) =
match (y + z * 10) with
q -> (y, z)
|_ -> aux(y + 1, z + 1, q) //How to correctly set the increments?
aux(0, 0, x)
无论如何,此方法始终返回(0, 0)
。我提到this question,同时考虑解决方案。我知道应该避免可变变量,这就是我所做的。不幸的是,我担心我在某个地方错过了这个观点,因此我从错误的方面接近了这个问题。
明白了,谢谢。 – Worice