Hdu1396

//Counting Triangles

/*  頂角朝上的三角形:a[i]= a[i-1]+c(i+1,2)(從底邊任選兩點爲正三角形底邊 )
    頂角朝下的三角形:b[i]=b[i-1]+c((i+1)/2,2)+ c((i+2)/2,2)(因爲偶數邊長的正三角形和其邊長一半的反三角形存在着對應關係,
    所以將底邊所有的點分爲兩類:奇數和偶數點;再在相應的奇數偶數點集中任選兩點構成新的偶數底邊,則所求的反三角形即爲偶數邊的正三角形的個數。)*/ 

#include<stdio.h>
int c(int n,int m);
int main()
{
	int n,i,a[505],b[505];
	while(scanf("%d",&n)!=EOF)
	{
		a[1]=1;
		b[1]=0;
		for(i=2;i<=n;i++)
		{
			a[i]=a[i-1]+c(i+1,2);
			b[i]=b[i-1]+c((i+1)/2,2)+c((i+2)/2,2);
		}
		printf("%d\n",a[n]+b[n]);
	}
	return 0;
}
int c(int n,int m)
{
	return n*(n-1)/m;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章