南邮 OJ 1094 蛇形填数

来源:互联网 发布:中国取黑人媳妇知乎 编辑:程序博客网 时间:2024/06/11 13:44

蛇形填数

时间限制(普通/Java) : 5000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 1058            测试通过 : 398 

比赛描述

在n×n方阵里填入1,2,…, n×n,要求填成蛇形(见样例)。


输入

输入正整数n,n≤64。

输出

输出蛇形矩阵,要求每个数格式宽度为5、右对齐。

样例输入

4

样例输出

   10   11   12    1
    9   16   13    2
    8   15   14    3
    7    6    5    4

题目来源

刘汝佳《算法竞赛入门经典》




#include<iostream>#include<iomanip>using namespace std;int main(){int n,i,j,k,dir;int a[64][64]={0};cin>>n;i = 0;j = n-1;dir = 0;for(k=1;k<=n*n;++k){a[i][j] = k;switch(dir){case(0)://下if(i+1>n-1 || a[i+1][j]){--j;dir = 1;}else{++i;}break;case(1)://左if(j-1<0 || a[i][j-1]){--i;dir = 2;}else{--j;}break;case(2)://上if(i-1<0 || a[i-1][j]){++j;dir = 3;}else{--i;}break;case(3)://右if(j+1>n-1 || a[i][j+1]){++i;dir = 0;}else{++j;}break;}}cout<<right;for(i=0;i<n;++i){for(j=0;j<n;++j){cout<<setw(5)<<a[i][j];}cout<<endl;}}






0 0
原创粉丝点击