输入一个数求得阶乘后,不用退出运行即可输入下一个数求得其阶乘,知道手动退出运行为止。3:int有最大值,需要规定最大值。 。。求大侠帮助!在线等!
大侠,谢谢你!我运行了,从1到25都是可以的,26、28、29等的阶乘变成了负数,而且后面的数的阶乘看着不对,还有阶乘是0的,求教啥原因?
追答因为整型的范围有限,26的阶层超过了他的范围
public static double GetResult(int number)
{
if (number == 0 || number == 1)
return 1;
return number * GetResult(number - 1);
}
改成double会好点,不过结果是科学计数法,只能计算到170的阶层,再大就是正无穷了
大侠,你这个程序我也运行了,可是前面的数字还是对的,到了26那儿 ,就开始是负数啊,或者就不对,输入八九十的数,就说阶乘是0,求教啥原因?
追答那是因为数太大了,超过了整形的取值范围,我在帮你本地测一下。
整了一会,对大数的操作比较麻烦。
网上有个例子,你看下吧
http://www.cnblogs.com/snowdust/archive/2010/03/18/1688963.html