2 条题解

  • 0
    @ 2025-10-24 18:01:23

    直接按数学公式模拟即可。

    AC code:

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        long long N;//不开 long long 见祖宗
        cin >> N;
        // 使用数学公式求解:K^2 + K - 2N >= 0
        // 正根为 (-1 + sqrt(1 + 8N)) / 2
        // 取上界整数
        int K = ceil((-1 + sqrt(1 + 8LL * N)) / 2);
        cout << K << endl;
        return 0;
    }
    
    • 0
      @ 2025-9-4 21:59:21

      由 ∑i=1Ki=K(K+1)2\displaystyle \sum _{i=1} ^{K}i=\dfrac{K(K+1)}{2} 可得 K≥2N+14−12K \ge \sqrt{2N+\dfrac{1}{4}}-\dfrac{1}{2},直接套公式即可。

      #include <bits/stdc++.h>
      using namespace std;
      int a[112];
      int main()
      {
      	long long n;
      	cin >> n;
      	long long res = sqrtl(2 * n + 0.25) + 0.49;
      	if (res * (res + 1) < 2 * n)  res++;
      	cout << res << endl;
      	return 0;
      }
      
      • 1

      信息

      ID
      34
      时间
      1000ms
      内存
      256MiB
      难度
      2
      标签
      递交数
      7
      已通过
      4
      上传者