題目連結: https://zerojudge.tw/ShowProblem?problemid=d096

# 解題思路

1

3 5 7

9 11 13 15 17

19 21 23 25 27 29 31

由上面規律觀察可知 :

N = 3 時,在第 2 列,此時已經寫了 4 個奇數,且第 4 個奇數為 7 (此數亦為該列最後一個數字)

N = 5 時,在第 3 列,此時已經寫了 9 個奇數,且第 9 個奇數為 17

N = 7 時,在第 4 列,此時已經寫了 16 個奇數,且第 16 個奇數為 31

因此,給定 N,目前為第 (N+1) / 2 列,
此時已經寫了 (( N+1) / 2 )2 個奇數,且該數為 2 * (( N+1) / 2 )2 -1

最後,要求最後三個數字,就先減去 2,算出倒數第二的奇數的值 (三數平均),在乘上 3 倍即可

# 程式碼

#include <iostream>
using namespace std;
int main()
{
    long long int N,num;
    while(cin>>N)
    {
        num= 2 *((N+1)/2)*((N+1)/2) -1;
        cout <<3*(num -2) <<endl;
    }
}
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay