算法竞赛入门经典程序3-3
2014-11-19 14:19
141 查看
#include <iostream>
#include <stdio.h>
using namespace std;
//const int max=8;
int a[8][8];
int main()
{
//输入数字n
int n;
cin>>n;
int x=0,y=n-1;
//判断边界条件,并为a[1][n-1]赋值
a[x][y]=1;
int num=1;
while (num<n*n) //将最外面的数字输入完毕后 在输内部的值
{
while (x<n-1 && !a[x+1][y]) { a[++x][y]=++num; }
while (y>0 && !a[x][y-1]) { a[x][--y]=++num; }
while (x>0 && !a[x-1][y]) { a[--x][y]=++num; }
while (y<n-1 && !a[x][y+1]) { a[x][++y]=++num; }
}
for (int i=0; i<n; i++)
{for (int j=0; j<n; j++)
//
{ //cout<<a[i][j];
printf("%3d",a[i][j]);
}
//printf("\n");
cout<<"\n"<<endl;
}
return 0;
}
#include <stdio.h>
using namespace std;
//const int max=8;
int a[8][8];
int main()
{
//输入数字n
int n;
cin>>n;
int x=0,y=n-1;
//判断边界条件,并为a[1][n-1]赋值
a[x][y]=1;
int num=1;
while (num<n*n) //将最外面的数字输入完毕后 在输内部的值
{
while (x<n-1 && !a[x+1][y]) { a[++x][y]=++num; }
while (y>0 && !a[x][y-1]) { a[x][--y]=++num; }
while (x>0 && !a[x-1][y]) { a[--x][y]=++num; }
while (y<n-1 && !a[x][y+1]) { a[x][++y]=++num; }
}
for (int i=0; i<n; i++)
{for (int j=0; j<n; j++)
//
{ //cout<<a[i][j];
printf("%3d",a[i][j]);
}
//printf("\n");
cout<<"\n"<<endl;
}
return 0;
}
相关文章推荐
- <蛇形填数>--算法竞赛 入门经典(第2版)- 3.1 数组 程序3-3 蛇形填数
- 算法竞赛入门经典 6.2.2键式结构 程序源码list2.cpp错误
- 算法竞赛入门经典java版程序ch3 Uva10340
- 算法竞赛入门经典 程序3-2 开灯问题
- 算法竞赛入门经典程序3-6
- 算法竞赛入门经典java版程序ch4 UVa213
- 算法竞赛入门经典 1.1 算术表达式
- 算法竞赛入门经典 例题7-2 埃及分数
- 算法竞赛入门经典 8.3.2循环日程表问题
- 算法竞赛入门经典 1.1 算术表达式
- {算法竞赛入门经典}第二章 习题解答及例题小结
- 算法竞赛入门经典 7.5.3 八数码问题
- 算法竞赛入门经典chapter4:4-1孪生素数
- {算法竞赛入门经典}第二章 如何判断整数
- 算法竞赛入门经典 3.2 字符数组
- 算法竞赛入门经典 例题8-1
- 算法竞赛入门经典 第二章 上机练习(C++代码)
- 算法竞赛入门经典 3.3 最长回文子串
- 算法竞赛入门经典 例题9-1
- 算法竞赛入门 例题7-1 最优程序