C 语言超长阶乘

17 Mar 2025 | 6 分钟阅读

问题陈述: 整数 n 的阶乘,记作 n!,定义为

n! = n x (n-1) x (n-2) x (n-3) x ………. x 3 x 2 x 1

计算并打印给定整数的阶乘。

例如,如果 n = 30,我们计算 30 x 29 x 28 x ………..x 3 x 2 x 1,得到。

2 6 5 2 5 2 8 5 9 8 1 2 1 9 1 0 5 8 6 3 6 3 0 8 4 8 0 0 0 0 0 0 0,总共 33 位数字。

注意:n > 20 的阶乘甚至无法存储在 64 位长变量中。此类计算必须使用大整数。Java、Python、Ruby 等语言可以处理大整数,但我们需要在 C/C++ 中编写额外的代码来处理巨大的值。

程序描述: 以下程序可以计算任何数字的阶乘,即计算 20 以上的数字的阶乘,这对于 64 位计算机是不可行的。

我们从变量开始

上述代码的输出

Extra Long Factorials in C