思路:找到n=3时,分割数为20,从而可发现2,8, 20之间差的关系正好是6的倍数。
代码:
#include <stdio.h>
int ncase;
int n;
int nmax;
int a[10010];
int main() {
nmax=1;
a[1]=2;
scanf("%d",&ncase);
while(ncase--) {
scanf("%d",&n);
if(n<=nmax) {
printf("%d\n",a[n]);
continue;
}
else {
for (int i=nmax+1; i<=n; i++)
a[i]=a[i-1]+6*(i-1);
printf("%d\n",a[n]);
nmax=n;
continue;
}
}
}
浙公网安备 33010602011771号