A. Special Permutation(水题)

题意:有t个样例,输入一个数n,求输出一个n个数的数组p,并满足每个数的数值和对应的角标不相同。(p1!=1)

题解:只需要想出最简单的满足条件的表示方法即可。如果是偶数,直接倒着输出;如果是奇数,还是倒着输出,再用一个数把中间的数换掉就行了。(当然也可以统一处理,倒着输出,把中间数换成固定的一个数,比如1,能省代码)

ACcode:

int main()

{

int t;

cin >> t;

while (t--)

{

int n;

cin >> n;

if (n % 2 == 0)

{

for (int i = n; i > 1; i--)

cout << i << " ";

cout << "1" << endl;

}

if (n % 2 == 1)

{

for (int i = n; i >= n / 2+2; i--)

cout << i << " ";

cout << "1" << " ";

for (int i = n / 2 + 1; i > 2; i--)

cout << i << " ";

cout << "2" << endl;

}

}

return 0;

}

 

posted @ 2021-01-29 18:15  Uiney  阅读(68)  评论(0编辑  收藏  举报