用“C++”解决四阶蛇形方阵只要C++,不要别的

来源:百度知道 编辑:UC知道 时间:2024/05/06 00:57:39
按以下所示规律把1-N*N个数填入N*N的方阵中:
1 3 4 10 11
2 5 9 12 19
6 8 13 18 20
7 14 17 21 24
15 16 22 23 25
9月30号早上6点之前有效!~
过期不侯,谢谢!~

知道没分拿了 但是 记得有很多朋友问过我这个问题哦~~~ 我也记得我做出来过 而且优化过 所以又花了20来分钟 做了一边 代码没有优化 你们看有用就优化一下吧
#include <stdio.h>
#define N 5 /*可更改宏来改变N 的大小 这个程序只做了 奇数的 偶数能不能 。。 应该不能 呵呵 起码我做的时候没有考虑 偶数的情况 大家可以自己去完善 有必要我在跟大家一起探讨阿哦*/
void main()
{
int x=1,y=0,b,k=0,i,j,w=1;
int s[N][N];
b = N*N;
s[0][0] = 1;
s[1][0] = 2;
for(i=3; i<=b; i++)
{
if((k == 0) && (x != 0) && (y != (N-1)))
{
x--;
y++;
w = 0;
}
if((k == 1) && (y != 0) && (x != (N-1)))
{
x++;
y--;
w = 0;
}

if((w == 1) && (x == 0))
{
y++;
k = 1;
}
if((w == 1) && (y == 0) && (x != (N-1)))
{
x++;
k = 0;
}
if((w == 1) && (x == (N-1)))
{
y++;
k = 0;
}
if((w == 1) && (y == (N-1)) && (x != 0))
{
x++;
k = 1;
}
s[x][y] = i;
w = 1;
}