给你边长为n的等边三角形
算有几个三角形
z[1]=1;
第N层 z[n]
1 n-1层 z[n-1]
2 2*n-1 个小的
3 新产生的 正的>1的三角形 n*(n-1)/2;
4 新产生的倒的>1的三角形 /这边可以去推一推
#include<stdio.h> #include<string.h> #include<algorithm> #include<math.h> using namespace std; typedef long long ll; #define MAXN 505 ll z[MAXN]; int main() { z[1]=1; for(int i=2;i<=500;i++) { z[i]=z[i-1]+2*i-1+i*(i-1)/2; int k=i-3; while(k>0) { z[i]+=k; k-=2; } } int n; while(scanf("%d",&n)!=EOF) { printf("%lld ",z[n]); } return 0; }