幻方数.cpp

来自「这是一个生成幻方数的算法」· C++ 代码 · 共 54 行

CPP
54
字号
#include<iostream.h>
#include<iomanip.h>
#include<math.h>

void showfangzhen(int n);
  
int main()
{
	for (int n=0;n<10;n++)
	{   cout<<endl<<"**************"<<2*n+1<<"阶幻方**************"<<endl;
		showfangzhen(2*n+1);}
	cout<<"press any to continue...";
	cin.get();
	return 0;
}

void showfangzhen(int n)
{
	if(!(n%2)) return;
	int i,j,**array;
	array=new int *[n];
	for (i=0;i<n;i++) {
		array[i]=new int[n];
	}
	for (i=0;i<n;i++) {
		for (j=0;j<n;j++) {
			array[((n-1)/2+i-j+n)%n][(3*n-1+j-2*i)%n]=i*n+j+1;

	}

	}
	for (i=0;i<n;i++) {
		
		for (j=0;j<n;j++) {
			cout<<array[i][j]<<"  ";
			if ((j+1)%n==0)
			{
				cout<<endl;
			}

	}

	}

	for (i=0;i<n;i++) {
		delete[] array[i];

	}

	delete array;



}

⌨️ 快捷键说明

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