在c ++中是否有内置的阶乘函数?

问题描述 投票:7回答:3

我搜索过但我找不到这个。有人请告诉我,如果在c ++中有任何内置的阶乘函数吗?

c++
3个回答
14
投票

虽然没有专门为计算因子定义的C函数,但C数学库允许您计算gamma function。因为Г(n)=(n-1)!对于正整数,使用tgammai+1得到i!

如果使用用户定义的阶乘函数,则会打印相同的数字:

for (int i = 1 ; i != 10 ; i++) {
    printf("%lld %f\n", factorial(i), tgamma(i+1));
}

Demo.

1 1.000000
2 2.000000
6 6.000000
24 24.000000
120 120.000000
720 720.000000
5040 5040.000000
40320 40320.000000
362880 362880.000000

注意:考虑到编码阶乘函数是多么容易,使用gamma来计算阶乘就像用大锤杀死苍蝇一样。


3
投票

不,标准库中没有这样的功能。


3
投票

不,在标准c ++中,没有像factorial这样的功能,但你可以在boost库中找到相同的功能:boost::math::factorial

© www.soinside.com 2019 - 2024. All rights reserved.