还是那个波斯猫!

      从   浅蓝 玩到 深蓝!

逝者如斯
网志分类
· 所有网志 (24)
· frontdoor (3)
· 人生一壶茶 (2)
· play pc! (3)
· 程序设计 (4)
· 逢考必过 (12)
搜索本站
友情链接
· 我的歪酷 非非共享界
· 张磊
· 林乐
· dodo
· laten

订阅 RSS

0009845

歪酷博客


« 上一篇: 这里是teacher lee上课编过的(set class)!!! 下一篇: 这里是teacher lee上课编过的(有理数类)!!! »
boss bao @ 2006-06-02 12:04

//  snake matrix
#include <iostream>
#include <cstring>
using namespace std;

enum DIRECTION {DOWN, RIGHT, UP, LEFT};
int main ()
{
 int  *A ;
 int n;
 cin >> n;
 A = new int [n*n];
 memset (A, 0, n*n*sizeof (int));
 DIRECTION dir = DOWN;
 int k;
 int  row =0, col = 0;
 for (k = 1; k <= n*n; k++) {
  A[row*n+col] = k;
  switch (dir) {
  case DOWN:
   if (row < n-1 && A[(row+1)*n+col] == 0) {
    row ++;
   } else {
    dir = RIGHT;
    col ++;
   }
   break;
  case RIGHT:
   if (col < n-1 && A[row*n+(col+1)] == 0) {
    col ++;
   } else {
    dir = UP;
    row --;
   }
   break;
  case UP:
   if (row > 0 && A[(row-1)*n+col] == 0) {
    row --;
   } else {
    dir = LEFT;
    col --;
   }
   break;
  case LEFT:
   if (col > 0 && A[row*n+col-1] == 0) {
    col --;
   } else {
    dir = DOWN;
    row ++;
   }
   break;
  }
 }
 for (row = 0; row < n; row ++) {
  for (col = 0; col < n; col ++) {
   cout.width (4);
   cout << A[row*n+col];
  }
  cout << endl;
 }
 delete [] A;
 return 0;
}





评论 / 个人网页 / 扔小纸条
* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 


 

分类小组论坛
杂谈 , 娱乐、八卦 , 文学、艺术 , 体育 , 旅游、同城 , 象牙塔 , 情感 , 时尚、生活 , 星座 , 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定