关于拉丁方阵的数量问题

我只是按一个环形进行举例,明显少了很多,但是又找不到规律,不知道该怎么做

img

img

这是我写的代码
#include
using namespace std;
int main(){
int a,b,c,d,n,e=1;
cout<<"请输入数n"<<endl;
cin>>n;
int *l=new int [n];
for(int i=0;i<n;i++){
l[i]=i+1;
}
cout<<"不同n阶拉丁方阵为"<<endl;
if(n<=2){
for(int i=0;i<n;i++){
for(int a=1;a<=n;a++){
for(int b=a;b<=n;b++){
cout<<l[b-1]<<" "<<"\t";
}
for(int c=1;c<a;c++){
cout<<l[c-1]<<" "<<"\t";
}cout<<endl;
}for(int d=n-1;d>0;d--){
l[d]=l[d-1];}
l[0]=l[n-1]+1;
cout<<endl<<endl;
}
}
if(n>2){
for(int i=0;i<n;i++){
for(int a=1;a<=n;a++){
for(int b=a;b<=n;b++){
cout<<l[b-1]<<" "<<"\t";
}
for(int c=1;c<a;c++){
cout<<l[c-1]<<" "<<"\t";
}cout<<endl;
}for(int d=n-1;d>0;d--){
l[d]=l[d-1];}
l[0]=l[n-1]+1;
cout<<endl<<endl;
}
}}

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。