首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有关于数字排列规律的题目 帮小弟我看看如何错了 多谢

2012-06-01 
有关于数字排列规律的题目帮我看看怎么错了谢谢题目12673581349121410111516n41267153581416491317221012

有关于数字排列规律的题目 帮我看看怎么错了 谢谢
题目
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);    } 

热点排行
Bad Request.