思路:找到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; } } }