首先要明白阶乘函数的递增速度是极快的。从10!开始就有爆炸式的增长。
10!=3 628 800;而11!=39 916 800 ; 12!=479 001 600 13!=6 227 020 800(10位数字)
而int 数据类型的取值范围为-2147483648~2 147 483 647(10位数字)
很明显,从13!开始,具体结果已经不能用int表示了。
所以用int数据类型计算阶乘,最多可以计算到12!。
下面说用long long数据类型计算。
首先要知道long long数据类型的取值范围为
-9223372036854775808~9 223 372 036 854 775 807(19位数字)
20!=2 432 902 008 176 640 000(19位数字)
21!=5.1090942171709e+19 大于long long数据类型的取值范围
很明显从21!开始,具体结果已经不能用long long数据类型表示了。
int 数据类型 long long数据类型分别可以算到的阶乘为十二的阶乘 二十阶乘(十二 二十,刚好便于记忆。)
如果觉得有用,请点一下赞吧!