每進行一次遞迴,都會在棧上多加一層,所以遞迴太深的話會出現資料溢位的錯誤。函式呼叫層次過深,每呼叫一次,函式的引數、區域性變數等資訊就壓一次棧。
#includeusing namespace std;
int def(int n)
int main()
不過根據實驗,這個也不行。
2.陣列法
利用陣列來反向儲存資料,並在最後反向輸出結果。
#includeusing namespace std;
#includeconst int max = 3000;
int a[max];
int fac(int n)
a[j] = a[j] % 10;//取餘得到第j位上該放置的數字
} }for (int i = top; i >= 0; --i)
return 0;
}int main()
這個用來算階乘的效果很好:不會連100都算不了,可以看到下面連一千的階乘都算的出來,只要不超過陣列的限制。
MySQL的階乘函式 C 階乘函式(遞迴)詳解
遞迴計算階乘函式將接收乙個整數引數並計算其階乘。現在不妨用數學的例子來檢驗乙個遞迴的應用。在數學中,符號 n 表示數字 n 的階乘。整數 n 的階乘被定義如下。n 1 x 2 x 3 x x n 如果 n 0 n 1 如果 n 0 規則規定,當 n 大於 0 時,其階乘是從 1 到 n 的所有正整數...
C語言 n的階乘 遞迴
在不考慮溢位等問題,輸入的數字為乙個正整數時,求該正整數的階乘。實現一 include int fun int x int main void 在不考慮溢位等問題,輸入的數字為乙個正整數時,求該正整數的階乘。要求 不能使用if else while do while for goto語句。實現二 i...
IOS溢位不滾動的問題及解決方案
最近做的專案在手機端使用的時候踩了個坑,自己埋頭研究了挺久才明白問題的源頭,現在寫出來給大家分享一下 這裡說的坑指的是在ios手機端開啟頁面以後內部控制項的區域性滾動效果無法使用的問題,這個情況也只在ios的手機上會出現,以下 我是分割線 問題描述 ios瀏覽器區域性滾動預設沒有彈性滾動的效果。解決...