我正在致力於一個簡單的函數,應該給出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