根据边长每增加一,正三角和反三角增加的多少进行判断!
#include"stdio.h" int dp[510]={0,1}; int main() { int i,n; for(i=2;i<=500;i++) { if(i%2==1) dp[i]=dp[i-1]+(i*i-1)/4+i*(i+1)/2; else dp[i]=dp[i-1]+(i*i)/4+i*(i+1)/2; } while(scanf("%d",&n)!=EOF) printf("%d\n",dp[n]); return 0; }