題目連結: 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;
}
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay