【題解】ZeroJudge d096: 00913 – Joana and the Odd Numbers

【題目敘述】https://zerojudge.tw/ShowProblem?problemid=d096
【解題想法】

  • 某一列有 N 個奇數數字(1 < N < 1000000000),表示該列的最後一個數字是第 (1 + n) * (1 + n) / 4 個奇數,且其值為 (cnt – 1) * 2 + 1。
  • 該列最後3個數字的和為 ((cnt – 1) * 2 + 1) * 3 – 6。
  • N 很大,計算時用的變數要宣告成 long long。
#include <iostream>
using namespace std;

int main() {
    long long n;
    while (cin >> n){
        long long cnt = (1 + n) * (1 + n) / 4;
        cout << ((cnt - 1) * 2 + 1) * 3 - 6 << "\n";
    }
    return 0;
}
分享本文 Share with friends