蛇形填数
来源:互联网 发布:淘宝联盟返利时间 编辑:程序博客网 时间:2024/05/18 19:18
#include<iostream>
using namespace std;
int main()
{
int i,j,n,num=0,a[100][100]={0};
num=a[i=0][j=n-1]=1;
while(num<n*n)
{
while(i+1<n&&!a[i+1][j]) //判断下一个被填位置是否为空位置,为空(即非0,为真)且第一个条件满足,则执行循环,下同!
a[++i][j]=++num;
while(j-1>=0&&!a[i][j-1])
a[i][--j]=++num;
while(i-1>=0&&!a[i-1][j])
a[--i][j]=++num;
while(j+1<n&&!a[i][j+1])
a[i][++j]=++num;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
using namespace std;
int main()
{
int i,j,n,num=0,a[100][100]={0};
num=a[i=0][j=n-1]=1;
while(num<n*n)
{
while(i+1<n&&!a[i+1][j]) //判断下一个被填位置是否为空位置,为空(即非0,为真)且第一个条件满足,则执行循环,下同!
a[++i][j]=++num;
while(j-1>=0&&!a[i][j-1])
a[i][--j]=++num;
while(i-1>=0&&!a[i-1][j])
a[--i][j]=++num;
while(j+1<n&&!a[i][j+1])
a[i][++j]=++num;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
形如:n=4:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
0 0
- 蛇形填数
- 算法:蛇形填数
- 蛇形填数
- 蛇形填数
- 蛇形填数
- 蛇形填数问题
- 蛇形填数
- C++蛇形填数
- 蛇形填数
- 蛇形填 数
- 蛇形填数
- NYOJ - 蛇形填数
- 蛇形填数
- 各种蛇形填数
- 蛇形填数
- 蛇形填数
- ACM-蛇形填数
- 蛇形填数
- (转载)数据结构-栈
- 汇编dos系统调用(输入输出篇)
- 数据结构-队列
- 神奇的开方
- 隐式转换问题
- 蛇形填数
- 购物省钱小助手让您购物更轻松,返利更简单
- javascript动画基础(五)--三角学在动画中的运用(4)
- 数据结构(java语言描述)-- 栈的两种简单实现
- 《编程导论(Java)·7.4.3 堆上的对象》
- hdu 1561 The more, The Better 树形dp+背包
- AppiumDriver升级到2.0.0版本引发的问题--Cannot instantiate the type AppiumDriver
- 【Struts2学习笔记(4)】指定需要Struts 2处理的请求后缀和细说常量定义
- php递增、递减运算的理解