这个题纯属脑洞啊


看到题目很明显就是找规律填数字,让我们一直加某一个数字使得可以开方成为一个整数

开到样例中的值

2,6,12,20,想到什么了吗?

为什么输入4和输入3和输入2的答案不一样?

由于这个是special judge,那么出题人的想法我们就能猜了


2=1*2

6=2*3

12=3*4

20=4*5

所以后面几个肯定是5*6=30,6*7=42……

所以,我们可以打表了


#include<bits/stdc++.h>
using namespace std;

#define LL __int64
const int maxn=1e5+50;
LL ans[maxn];

int main(){
    ans[1]=2;
    for(int i=2;i<=100000;i++)
        ans[i]=1LL*i*(i+1)*(i+1)-(i-1);
    int n;
    while(scanf("%d",&n)!=EOF)
        for(int i=1;i<=n;i++)
            printf("%I64d\n",ans[i]);
    return 0;
}