題目來源:https://zerojudge.tw/ShowProblem?problemid=a216
f(n) = n + f(n-1)
g(n) = f(n) + g(n-1)
已知N,求f(n)跟g(n)
f(1) = g(1) = 1,
有空可以好好看一下這題的題目,這是一個很典型的出題方式,題目內百分之90都是沒有用的文字,在時間有限的競賽或檢定內,統整跟篩選出有效益的資訊也是很重要的能力。
在這題的解題過程裡,比較要注意的是資料的大小,會超過INT所能儲存的極限。
以下附上程式碼:
#include <iostream>
#include <array>
using namespace std;
int main()
{
array<long long , 30001> f;
array<long long , 30001> g;
f[1] = g[1] = 1;
for(int i = 2; i <= 30000; i++) {
f[i] = i + f[i-1];
g[i] = f[i] + g[i-1];
}
int n;
while(cin >> n) {
cout << f[n] << " " << g[n] << endl;
}
return 0;
}
沒有留言:
張貼留言