关于蚊香数组的实现
来源:互联网 发布:九天智能建站源码 编辑:程序博客网 时间:2024/05/16 02:06
123
894
765
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
这样的数组称蚊香数组
给定参数N
求data[N][N]蚊香数组的实现
/**//*解这类题,主要就是要注意方向和步长控制
以你这道题为例谈谈做法
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9*/
#include <stdio.h>
#define N 5
int main()
...{
//(1)初始化
int a[N][N];
int i=0,j=0;
int m=1;
//为什么这样,因为起点在(0,0),起点值是1
//(2)
bool bRight=true;//右走,还是左走
int x1=N,y1=N-1;//这个是步长控制,在x方向走x1步,y方向走y1步
while(m<=N*N)//循环结束条件
...{
int k=0;
if(bRight)
...{
for(k=0;k<x1;++k)//水平右走
...{
a[i][j]=m++;
j++;//水平右走,j加1
}
//i,j回归
i++;j--;
for(k=0;k<y1;++k)//垂直向下
...{
a[i][j]=m++;
i++;
}
//i,j回归
i--;j--;
bRight=!bRight;//换向
//步长调整
x1--;y1--;
}
else
...{
for(k=0;k<x1;++k)//水平左走
...{
a[i][j]=m++;
j--;//水平左走,j加1
}
//i,j回归
i--;j++;
for(k=0;k<y1;++k)//垂直向上
...{
a[i][j]=m++;
i--;
}
//i,j回归
i++;j++;
bRight=!bRight;//换向
//步长调整
x1--;y1--;
}
}
for(i=0;i<N;++i)
...{
for(j=0;j<N;++j)
printf("%4d",a[i][j]);
printf(" ");
}
}
//声明,这是一类题的解法,碰到这种矩阵,应该能轻松解决了吧。
- 关于蚊香数组的实现
- 蚊香数组问题解决
- 蚊香的支架
- 蚊香的健康使用
- 蚊香的画法
- Android实现电蚊香/Service服务管理类
- 搞笑一下,我们宿舍有世界上独一无二的蚊香利器。
- 关于数组金字塔的Java实现
- 关于数组实现队列的一些设计
- 关于数组循环移动的实现
- 关于动态数组的泛型实现
- 关于数组中排序方法的实现
- 关于二维数组的翻转与旋转 低端实现
- 关于json数组拼接中对象的对象具体实现
- demo3----蚊香制作
- 一瓶蚊香液
- Drawing 电蚊香液
- 关于数组的用法
- InnoDB中文参考手册---5添加与移除InnoDB数据和日志文件
- BASE64�������ʮ���Ƶ�ʵ�ַ���
- 在下安装和使用
- MapXʹ�����ݿ��������ר��ͼ(ϵ��֮��)
- 巧用log调试程序
- 关于蚊香数组的实现
- Ϊ��ѡ��Indy��
- 查找表中自增字段
- 的管理工具:phpMyAdmin
- 如果我是你的老婆
- linux多线程设计
- 基于的集群系统的实现
- 获取grideview内部控件的值的方法
- ���봴����ʽ�淶 1.0 (for delphi)