循环数组!注意分奇偶!
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[105],t,n;
cin>>t;
while(t--)
{
cin>>n;
for(int i=0;i<n;i++)
a[i]=i+1;
if(n%2==0)
{
cout<<n-1<<"\n";
for(int i=1;i<n;i++)
{
int f=1;
for(int j=0;j<n/2;j++)
{
if(f)
{
cout<<a[j]<<"vs"<<a[n-1-j];
f=0;
}
else
cout<<" "<<a[j]<<"vs"<<a[n-1-j];
}
cout<<"\n";
int tmp=a[1];
for(int j=1;j<n-1;j++)
a[j]=a[j+1];
a[n-1]=tmp;
}
}
else
{
cout<<n<<"\n";
for(int i=0;i<n;i++)
{
int f=1;
for(int j=0;j<n/2;j++)
{
if(f)
{
cout<<a[j]<<"vs"<<a[n-1-j];
f=0;
}
else
cout<<" "<<a[j]<<"vs"<<a[n-1-j];
}
cout<<"\n";
int tmp=a[0];
for(int j=0;j<n-1;j++)
a[j]=a[j+1];
a[n-1]=tmp;
}
}
cout<<"\n";
}
return 0;
}