【发布时间】:2016-01-19 10:07:10
【问题描述】:
幸运的是,这个程序可以很好地找到 1 到 12 的阶乘,但是在 12 之后,因为 13、14、20 ..... 输出出错了,我也尝试找到 40 的阶乘并且输出为 0。 未能找到确切的问题...
#include <stdio.h>
int main() {
int user_input, tbl;
printf("Enter any number: \t");
scanf("%i", &user_input);
tbl = user_input;
for(int i=2; i < user_input; i++) {
tbl = tbl * i;
}
printf("Factorial of %i is %i", user_input, tbl);
}
【问题讨论】:
-
你检查了
int可以容纳的最大值吗? -
@forweb 查看Ridiculously Large Number Multiplication,它提供了一种将数字作为字符串相乘的方法,这使您能够几乎没有限制地进行数字相乘。