我正在开发Android中的计算器应用程序。计算因子
我开发了计算器,并且除了阶乘函数以外运行良好。
计算阶乘的功能是:
public float factorial (float n){
float ans=1;
for (int i=1; i<=n; i++){
ans=ans*i;
}
return ans;
}
的问题是,直到34!
我觉得我得到正确的答案。
34!=2.952328229965333E38
然而,对于n>=35
,我得到的答案
n!=Infinity
我意识到,这是因为浮动溢出。 如何增加float
的范围至少可以说是10^100.
谢谢。
我确保这个函数的输入n总是一个整数,不用担心。 –
为什么不使用递归循环来计算阶乘? – punter
使用尾递归是什么意思? –