- 最後登錄
- 2021-7-16
- 在線時間
- 0 小時
- 註冊時間
- 2008-5-31
- 閱讀權限
- 20
- 精華
- 0
- UID
- 4330990
- 帖子
- 632
- 積分
- 0 點
- 潛水值
- 12325 米
| 如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。 本帖最後由 hst326 於 2010-11-15 02:37 PM 編輯
回復 z24374203
改成遞迴如下,這應該不用解釋- int sum(int n)
- {
- if(n==1)
- return 0;
- else
- return sum(n-1) + n*n-n;
- }
複製代碼 sumar 遞迴方式如下:
改成iteration(迭代)方法,分成兩部分,降應該不難理解...
| 階乘部分 平方
i | /---------------\ /-------\
遞 | (1) x (n) ^2
減 | + (1) x (n) x (n-1)^2
| + (1) x (n) x (n-1) x (n-2)^2
V ===> fac *= i x i*i
--------------------------------------
= sum- /*
- * (1) x (n) ^2
- * + (1) x (n) x (n-1)^2
- * + (1) x (n) x (n-1) x (n-2)^2
- * ===> fac *= i x i*i
- * --------------------------------------
- * = sum
- */
- double sumar(int n)
- {
- double fac = 1;
- double sum = 0;
- for(int i=n; i>0; i--)
- {
- sum += fac * i*i;
- fac *= i;
- }
- return sum;
- }
複製代碼 ... |
|