#include
int main()
{
int i,j,k,m;
cin>>m;
int aa[100][100];
for(i=0;i
i=0;
j=m/2;
for(k=1;k<=m*m;k++)
{
while(aa[i][j]!=0)
{
i+=2;
j--;
if(j<0)j=m-1;
if(i>=m)i-=m;
}
aa[i][j]=k;
j++;
i--;
if(j==m)j=0;
if(i<0)i=m-1;
}
for(i=0;i
for(j=0;j
cout<
}
这是根据楼上的程序改的
运行后首先输入一个整数然后回车,如3代表3*3,4代表4*4等
没错啊
只是最后少了一个花括号。
能运行出来。
你的程序要执行4000万至3亿八千万次左右,太多了,略微有点算法都比这个强
这个问题你的程序的复杂度是n的九次方,太高了所以显示出来很慢,你就以为是没显示,
它的规律是中间的a5 肯定是5
a1a2a3a4a6a7a8a9
18349276183492761834927618349276
中任选八个连续的数字片段
有点意思
#include "stdafx.h"
#include
using namespace std;
int main()
{
int i,j,k,m;
cin>>m;
int aa[100][100];
if(m%2==1)
{
for(i=0;i
i=0;
j=m/2;
for(k=1;k<=m*m;k++)
{
while(aa[i][j]!=0)
{
i+=2;
j--;
if(j<0)j=m-1;
if(i>=m)i-=m;
}
aa[i][j]=k;
j++;
i--;
if(j==m)j=0;
if(i<0)i=m-1;
}
}
for(i=0;i
for(j=0;j
cout<
return 0;
}
VS2008编译,随便你几乘以几的都行,但是M必须是奇数!偶数没办法!