gpt4 book ai didi

function - Haskell - 尝试创建一个函数来查找奇数的阶乘

转载 作者:行者123 更新时间:2023-12-02 20:05:36 24 4
gpt4 key购买 nike

fact :: Int -> Int 
fact n
|n < 0 = 0
|n == 0 = 1
|n > 0 && n `mod` 2 == 1 = fact (n-1) * n
|n > 0 && n `mod` 2 == 0 = n-1

例如,当我输入奇数时:事实 5 将给出 15,因为它应该是 1 * 3 * 5 = 15。但是我意识到,如果我输入事实 7 或任何其他奇数,它只会将前两个相乘奇数。我如何获得将所有奇数相乘而不仅仅是前 2 个奇数的函数。事实 7 = 35(即 3 * 5)。另请注意,如果输入偶数,它将计算出所有奇数的阶乘,直到不包括偶数。

最佳答案

这让我想起了著名的Evolution of a Haskell Programmer 。解释一下终身教授的答案:

factorialOfOdds :: Integer -> Integer
factorialOfOdds n = product [1,3..n]

关于function - Haskell - 尝试创建一个函数来查找奇数的阶乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20082167/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com