前往
大廳
主題

ZeroJudge - a216: 數數愛明明 解題心得

Not In My Back Yard | 2021-06-07 00:00:07 | 巴幣 0 | 人氣 258

題目連結:


題目大意:
定義 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 。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作