读书人

有关于数字排列规律的题目 帮小弟我看

发布时间: 2012-06-01 16:46:36 作者: rapoo

有关于数字排列规律的题目 帮我看看怎么错了 谢谢
题目
1 2 6 7

3 5 8 13

4 9 12 14

10 11 15 16
n=4

1 2 6 7 15

3 5 8 14 16

4 9 13 17 22

10 12 18 21 23

11 19 20 24 25
n=5
n=5
以上是当n=4,5排列规律 当为n时怎么编程?
我的解答:
#include<iostream>
using namespace std;
int main()
{
int a[50][50],i,j,k,b,c=0,n,d=n;
a[0][0]=1;
cin>>n;
a[n][n]=n*n;
for(k=0;k<n/2;k++)
{
for(a[i][j]=a[0][c+1],a[0][c+1]=a[0][c]+1;i<=n,j>=0;i++,j--)
{a[i+1][j-1]=a[i][j]+1;
a[i][j]=a[i+1][j-1];
b=i;
}
for(a[i][j]=a[b+1][0],a[b+1][0]=a[b][0]+1;i>=0,j<=n;i--,j++)
{a[i-1][j+1]=a[i][j]+1;
a[i][j]=a[i-1][j+1];
c=j;
}
}
for(k=0;k<n/2;k++)
{
for(a[i][j]=a[n][d-1],a[n][d-1]=a[n][d]-1;i>=0,j<=n;i--,j++)
{a[i-1][j+1]=a[i][j]-1;
a[i][j]=a[i-1][j+1];
b=i;
}
for(a[i][j]=a[b-1][n],a[b-1][n]=a[b][0]-1;j>=0,i<=n;i++,j--)
{a[i+1][j-1]=a[i][j]-1;
a[i][j]=a[i+1][j-1];
d=j;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
cout<<a[i][j]<<" ";
}
return 0;
}

出错了 不知道怎么改()?求教 谢谢

[解决办法]

C/C++ code
//可以看作是1~n,n~1的按照斜角递增递减顺序的排列//在斜角端点时控制好下一次起点坐标即可//i,j表示行列。cur表示当前斜角数列的个数//cur为奇数则是,否则void snake_arr(int n)    {        int a[50][50];        int i = 0,j = 0,t = 1;        bool inc = true;        int step = 0,cur = 1;        do         {            a[i][j] = t++;            ++step;            if(step == cur)            {                if(cur == n) inc = false;                if(inc)                {                    if(i == 0) ++j;                    else if(j == 0) ++i;                                }                else                {                    if(j == n - 1) ++i;                                        else if(i == n - 1) ++j;                                    }                                inc ? ++cur : --cur;                step = 0;            }            else            {                if(cur % 2)                {                    --i;                    ++j;                }                else                {                    ++i;                    --j;                }            }                            } while (t <= n * n);    } 

读书人网 >C++

热点推荐