计算不符合三角形的组合数,设x为最小边,y+z>x,所以要求y-z>=x这样的组合有多少个(为保证不重复设x<y<z)。
1 #include2 typedef long long i64; 3 int main() 4 { 5 i64 i,n,sum; 6 while(scanf("%lld",&n)!=EOF&&n>=3) 7 { 8 sum=0; 9 for(i=1;i<=n/2;i++)10 sum+=(n-2*i+1)*(n-2*i)/2;11 printf("%lld\n",n*(n-1)*(n-2)/6-sum);12 }13 return 0;14 }