的整數,我想找到用C和Haskell 一個Composition of Integer我找到的Haskell這個代碼工作正常:此代碼的組成C和哈斯克爾
composition 0 = [[]]
composition n = [x:rest | x <- [1..n], rest <- composition (n-x)]
輸出示例:
*Main> composition 3
[[1,1,1],[1,2],[2,1],[3]]
*Main> composition 4
[[1,1,1,1],[1,1,2],[1,2,1],[1,3],[2,1,1],[2,2],[3,1],[4]]
但我不能開發C中的等價物: 我試圖在C創建遞歸函數,但我不知道如何使用哈斯克爾的等效:[]用C
0此代碼的樣本輸出是:
Composition is
111
2
21
3
3正確的組合物是
1 1 1
2 1
1 2
3
你的問題有點混亂。你到底在問什麼? C或C#解決方案?你能描述一下那些不認識Haskell的人:表達式:'生成n = [x:rest | x < - [1..n],rest < - generate(n-x)]'呢?你提供的信息越多越容易讓人們回答你的問題 –
@LuckAss我添加C輸出 –
@progy_rock 1)我知道但我不知道如何解決它2)我沒有開發它呢,無論如何,我也不知道如何以遞歸方式創建數組,例如我在Haskel中使用:冒號。 –