用C语言编写求20!的程序

Python015

用C语言编写求20!的程序,第1张

#include <stdio.h>void main(){double res=1.0int ifor(i=1i<=20i++){res*=i}printf("result=%lf",res)}利用for循环期求出第n项阶乘的积,然后前n-1项的阶乘的和加上第n项阶乘,当n等于20的时候就是所求。

20!的阶乘值超过了int 32bit的数值范围,但是在long long 64bit的范围内。

#include <stdio.h>

int main() {

    long long a = 1

    for (int i = 2 i <= 20 ++i) {

        a *= i

    }

    printf("%lld\n",a)

    return 0    

}

如果在大一些,long long也不行了,需要用大整数乘法,这样你就需要考虑用别人实现的大整数乘法库什么的了。Java有BigInteger的支持,专门处理这种问题