【題解】ZeroJudge e794: p1.黃金比例

【題目敘述】https://zerojudge.tw/ShowProblem?problemid=e794
【解題想法】斐波那契數列

  • 留意資料輸出時,先印出較小的數字。
#include <iostream>
using namespace std;

int main() {
    int n;
    int F0 = 1, F1 = 1, F2;
    cin >> n;
    int L = F0;
    int W = F0 + F1;
    for (int i=2; i<n; i++){
        F2 = F0 + F1;
        if (i % 2){
            W += F2;
        } else {
            L += F2;
        }
        F0 = F1;
        F1 = F2;
    }
    cout << min(L, W) << ":" << max(L, W) << endl;
    return 0;
}

Python code (credit: Amy Chou)

n = int(input())
F0 = 1
F1 = 1
L = F0
W = F0 + F1
for i in range(2, n):
    F2 = F0 + F1
    if i % 2: 
        W += F2
    else:
        L += F2
    F0 = F1
    F1 = F2
    
print(min(L, W), ":", max(L, W), sep='')
分享本文 Share with friends