转自:点击打开链接
若是知道了f(i-1)的值,而第i条折线与原来的图案相比多了4*(i-1)个交点,每多一个交点便多出一个区域,而且多出新加入的折线与原来边形成的区域,故+1;
f(i)=f(i-1)+4(i-1)+1;
,但实际上并无任意关系,只是碰巧罢了,以后应该从一些顺理成章的思路进行分析(合理性分析及推导)。
#include<cstdio>
#define N 10000
int main()
{
int c,n,i;
__int64 f[N+10];
f[1]=2;
int d=5;
for(i=2;i<=N;i++)
{
f[i]=f[i-1]+d;
d+=4;
}
scanf("%d",&c);
while(c--)
{
scanf("%d",&n);
printf("%I64d\n",f[n]);
}
return 0;
}