題目連結: https://zerojudge.tw/ShowProblem?problemid=a216
# 解題思路 01
完全依照題目的意思,寫出其定義的遞迴函式 (只是有點慢,但還可以)
# 程式碼 01
#include<iostream> | |
using namespace std; | |
int f(int n){ | |
if(n==1) | |
return 1; | |
else | |
return f(n-1)+n; | |
} | |
long long int g(int n){ | |
if(n==1) | |
return 1; | |
else | |
return f(n)+g(n-1); | |
} | |
int main(){ | |
int n; | |
while(cin>>n) | |
cout<<f(n)<<" "<<g(n)<<endl; | |
} |
# 解題思路 02
有沒有發現阿?他們倆個可以推導出一個簡單的公式阿~~
# 程式碼 02
#include<iostream> | |
using namespace std; | |
int f(int n){ | |
return n*(n+1)/2; | |
} | |
long long int g(int n){ | |
return n*(n+1)*(n+2)/6; | |
} | |
int main(){ | |
int n; | |
while(cin>>n) | |
cout<<f(n)<<" "<<g(n)<<endl; | |
} |