同济OnlineJudge预赛题(一): Treenders
Treenders
Time Limit:1000MS Memory Limit:10000K
【Description】
Treenders同学酷爱各种几何图形,最近他又迷上了各种正多边形,由于他听力差,唉,Simon的课上他又没听,于是在桌上画正多边形(要爱惜公物,Treenders听见没!!),划来划去实在是没什么意思,又不想听Simon在那“I have, you have, he has……”,于是他开始把画好的正多边形的任意两个顶点连接起来(这是个多么无聊而又浩瀚的工程啊!!)他忽然发现其中有很多条线是平行的,这是个惊奇的发现(我晕,这有什么好惊奇的……),于是他开始统计每种正多边形中有多少条连线是平行的,正一边形、正二边形、正三边形……他这么画着(无语……)他感觉这其中似乎隐藏着一个惊天大秘密,但由于小学上数学课也不怎么听的,数到后面就数不清楚了(这实在是不能怪别人啊……),于是没有办法,只能请求你来帮助他,希望你能够写一个程序帮助他求出给定正多边形中所有顶点对间连线有多少对平行线。
【Input】
第一行一个整数t(0 < t < 100),表示t组测试数据,接下来t行每行一个整数n( 2 < n < 2001)
【Output】
一共一行,一个整数ans (ans代表正n边形中所有顶点对间连线有多少对平行线)
【Sample Input】
5
【Sample Output】
5
【Hint】
对于正五边形ABCDE,所有的平行线对一共有5对:AE^BD, AB^EC,BC^AD,CD^BE,DE^AC。
【Author】
Birdsong
------------------------------------------
/********************
This is the source of
Problem Treenders.
Write by Birdsong.
********************/
#include <stdio.h>
long t, n, nn, total;
int main()
{
scanf("%d", &t);
while (t--)
{
scanf("%d", &n);
if (n % 2)
total = (n - 1) / 2 * (n - 3) / 2 * n / 2;
else
total = n / 2 * (n - 2) / 2* (n - 2) / 2;
printf("%ld\n", total);
}
return 0;
}