題目連結:
題目大意:
定義 f(n) = n + f(n - 1) 、 g(n) = f(n) + g(n - 1) ,且 f(1) = g(1) = 1 。
輸入有多列,每列給定一正整數 n (n ≦ 30000),試問 f(n) 以及 g(n) 之值為何?
範例輸入:
1
2
3
5
8
13
範例輸出:
1 1
3 4
6 10
15 35
36 120
91 455
解題思維:
迭代計算並建表出 f(2) 、 f(3) 等等,再計算 g(2) 、 g(3) 等等。然後對於輸入的 n 值輸出對應的 f(n) 以及 g(n) 之值。
不過也可以推出公式解:
f(n) 就是 1 + 2 + …… + n ,其為經典的公式 n(n + 1) ÷ 2。
g(n) 為 f(1) + f(2) + …… + f(n) ,其為 1 + (1 + 2) + (1 + 2 + 3) + …… + (1 + 2 + …… + n) = n × 1 + (n - 1) × 2 + …… 1 × n ,而其公式為 n(n + 1)(n + 2) ÷ 6 。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。