題目連結: 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; | |
} | |
} |