我正在開發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
使用尾遞歸是什麼意思? –