⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 任意基数阶魔方块.cpp

📁 基本算法为:先将1填入第一行中间位置;再依次将2-n方按如下规律填写://1
💻 CPP
字号:

//基本算法为:先将1填入第一行中间位置;再依次将2-n方按如下规律填写:
//1,填入上个数上一行的右边位置,如果没有上一行则转到最后一行,如果右边没有方格
//则转到最左边的方格。2,如果要填的位置上已经有数,则转填到它上一个数的下边方格
//3,对于第一行的最后一个数的下一个数应填在该数下边的空格处
#include<iostream.h>
void main()
{    
	int n;
	cout<<"请输入阶数目(基数):"<<endl;
		cin>>n;
             int k=n%2;
			 if(k==0)
			 {
				 cout<<"输入的n为偶数,请重新输入。"<<endl;
				 cin>>n;
			 }
			int a[99][99];
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		a[i][j]=0;
	}       
	        int h,l;
			 h=0;
			 l=n/2;
			 int c,d;
			 a[h][l]=1;
          for(int y=2;y<=n*n;y++)
			 {    
			     c=h;
				 d=l;
				 if(h==0&&l==n-1)
				 {
					 a[c+1][d]=y;
				      h=c+1;
					  l=d;
				}
		else
			{

				 h=(h+n-1)%n;
				 l=(l+n+1)%n;
                if(a[h][l]!=0)
				{	a[c+1][d]=y;
				      h=c+1;
					  l=d;
				}
				else
				   a[h][l]=y;
				}
			}
		for(int x=0;x<n;x++)
	 {
	 
		 for(int j=0;j<n;j++)
             cout<<a[x][j]<<"  ";
			 cout<<endl;
	 }
}

   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -