1 条题解

  • 0
    @ 2025-8-3 16:51:39

    O(N) guess

    实际上,这个方程与斐波那契序列有深刻的联系。在斐波那契序列中,连续项满足: Fn+12Fn+1FnFn2=(1)n F_{n+1}² - F_{n+1}F_n - F_n² = (-1)^n

    具体地,当 nn 为偶数时,上式等于 1-1 ;当 nn 为奇数时,上式等于 11 。因此,我们可以将方程重新写为: (n2mnm2)=(1)k(n² - m*n - m²) = (-1)^k (其中 kk 为某个整数) 但是,更直接地,我们知道斐波那契序列的连续项满足这个方程。实际上,所有满足方程的正整数解 (m,n)(m, n)(假设 m<nm<n )都是斐波那契序列中连续的项。

    #include <bits/stdc++.h>
    using namespace std;
    int main() {
        int k;
        long long m = 1, n = 1, c;
        cin >> k;
        while (m + n <= k) {
            c = m + n;
            m = n;
            n = c;
        }
        cout << "m=" << m << endl;
        cout << "n=" << n << endl;
        return 0;
    }
    
    
    • 1

    信息

    ID
    481
    时间
    1000ms
    内存
    256MiB
    难度
    9
    标签
    递交数
    15
    已通过
    3
    上传者