题目描述:
M个人围成一圈,每分钟相邻的两个人可以交换位置(只能有一对交换)。求使M个人的顺序颠倒(即每个人左边相邻的人换到右边,右边相邻的人换到左边)所需的最少时间(分钟数)。
输入:
第一行为测试数据的组数n,以后n行中每行为一个小于32767的正整数,表示M
输出:
对于每组测试数据,输出一个数,表示最少需要的分钟数。
样例输入:
3
4
5
6
样例输出:
2
4
6
分析:这种题,咋说来,很不好想,
源码:(有需要自取)
include <stdio.h>
int main(void){
int m,n; scanf("%d",&n); while(n>0){ scanf("%d",&m); if(m%2==0){ printf("%d\n",(m/2)*(m/2-1)); }else{ printf("%d\n",(m-1)*(m-1)/4); } n--; } return 0;
}