#14314: C++ 簡易解答(內附思考歷程)


jerry_lin (jerry_lin)

學校 : 臺北市私立延平高級中學
編號 : 69090
來源 : [203.72.178.252]
最後登入時間 :
2020-06-20 17:01:05
a216. 數數愛明明 | From: [203.72.178.252] | 發表日期 : 2018-07-13 14:24

*f(n) = n + f(n-1)

f(1) = 1                         ......1

f(2) = 2+f(1) = 1+2 = 3          ......1+2

f(3) = 3+f(2) = 3+3 = 6          ......1+2+3

f(4) = 4+f(3) = 4+6 = 10         ......1+2+3+4

f(5) = 5+f(4) = 5+10 = 15         ......1+2+3+4+5

.

.

.

 

*程式碼

#include <iostream>

using namespace std;

int main()

{

int n;

while(cin >> n)

{

long long int f[n], g[n];    /*以陣列代表函數,因為遞迴太花時間了*/

f[0] = 1;

g[0] = 1;    //兩個函數的第一個元素皆為0

for(int i=1; i<n; ++i)    //從f[1]、g[1] (第二個元素) 開始做處理

{

f[i] = f[i-1] + i + 1;    //如本頁最上面,f(n)=1+2+3+......+n;

g[i] = f[i] + g[i-1];

}

cout << f[n-1] << " " << g[n-1] << endl;    //輸出最後一個陣列(函式)的元素

}

return 0;

}

 
ZeroJudge Forum