Chinaunix首页 | 论坛 | 博客
  • 博客访问: 59190
  • 博文数量: 29
  • 博客积分: 667
  • 博客等级: 上士
  • 技术积分: 300
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-11 15:55
文章分类
文章存档

2012年(2)

2011年(27)

我的朋友
最近访客

分类: C/C++

2011-10-04 15:59:25

    1. #include <iostream>
    2. #include <iomanip>
    3. #define MAXN 8
    4. int a[MAXN][MAXN];

    5. using namespace std;
    6. int main() {
    7.     int n, x, y, tot = 1;
    8.     //cin >> n;
    9.     n = 8;
    10.     memset (a, 0, sizeof(a));
    11.     a[x=0][y=n-1] = 1;
    12.     while (tot < n*n) {
    13.         //不断向下走,并且填数;先判断,再移动
    14.         while (x+1 < n && !a[x+1][y]) a[++x][y] = ++tot;

    15.         while (y-1 >= 0 && !a[x][y-1]) a[x][--y] = ++tot;
    16.         while (x-1 >= 0 && !a[x-1][y]) a[--x][y] = ++tot;
    17.         while (y+1 < n && !a[x][y+1]) a[x][++y] = ++tot;
    18.     }
    19.     for (x =0; x < n; x++) {
    20.         for (y = 0; y < n; y++) {
    21.             cout << setw(3) << a[x][y] << " ";
    22.         }
    23.         cout << endl;
    24.     }
    25.     return 0;
    26. }
阅读(626) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~