信息学奥赛一本通 1091:求阶乘的和 / 2026:【例4.12】阶乘和 / OpenJudge NOI 1.5 34
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛一本通 1091:求阶乘的和 / 2026:【例4.12】阶乘和 / OpenJudge NOI 1.5 34
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目鏈接】
ybt 2026:【例4.12】階乘和
ybt 1091:求階乘的和
OpenJudge NOI 1.5 34:求階乘的和
【題目考點】
1. 求一個數的階乘
假設求n的階乘,設結果變量為r,其初值為1。
i從1循環到n,每次循環將i與r相乘,結果賦值給r。
最后得到的r就是階乘的結果
2. 求和
3. 循環嵌套
【思路及題解代碼】
解法1:循環嵌套
將求階乘的邏輯寫在求和的循環的內部,形成循環嵌套。
該解法時間復雜度:O(n2)O(n^2)O(n2)
解法2:設求階乘函數
設置階乘函數,每次調用階乘函數求一個數的階乘,而后將n個數的階乘加和。
該解法時間復雜度:O(n2)O(n^2)O(n2)
解法3:迭代
觀察階乘加和公式,第1項是1!1!1!,第2項是2!2!2!,…,第i-1項是(i?1)!(i-1)!(i?1)!,第i項是i!i!i!
已知i!=i?(i?1)!i! = i \cdot (i-1)!i!=i?(i?1)!
只需要設變量v表示某一項的值,初值為1。
每次循環,對v乘以i,即可得到新的一項(i的階乘),并將該項加入和sum中。
該解法的時間復雜度為O(n)O(n)O(n),優于解法1,2。
總結
以上是生活随笔為你收集整理的信息学奥赛一本通 1091:求阶乘的和 / 2026:【例4.12】阶乘和 / OpenJudge NOI 1.5 34的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息学奥赛一本通(1224:最大子矩阵)
- 下一篇: 信息学奥赛一本通(1321:【例6.3】