首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

HDU 平方和與立方和:區間偶數平方和與奇數立方和

     編輯:關於C++

問題描述

給定區間 [m, n],求區間內所有偶數的平方和與所有奇數的立方和。多組測試,直到 EOF。結果保證 32 位整數範圍內。

解題思路

直接遍歷區間累加即可,但需注意 m 可能大於 n(需交換)。偶數平方和:sum_even = Σ_{x even} x^2;奇數立方和:sum_odd = Σ_{x odd} x^3。也可用數學公式 O(1) 計算,但 n-m ≤ 10^6 時遍歷也足夠快。此處給出遍歷版。

代碼實現 (C++)

#include 
using namespace std;
int main() {
    long long m, n;
    while (cin >> m >> n) {
        if (m > n) swap(m, n);
        long long sumEven = 0, sumOdd = 0;
        for (long long x = m; x <= n; ++x) {
            if (x % 2 == 0) sumEven += x * x;
            else sumOdd += x * x * x;
        }
        cout << sumEven << " " << sumOdd << endl;
    }
    return 0;
}

複雜度分析

  • 時間複雜度:O(n-m) 每測試用例。
  • 空間複雜度:O(1)。

總結

簡單的區間求和問題,注意輸入順序與數據類型(long long 防溢出)。若區間極大可用等差數列求和公式優化。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved