螺旋队列的另一种解法
来源:互联网 发布:淘宝没发货退款要多久 编辑:程序博客网 时间:2024/06/04 19:18
#include<iostream>
#include<iomanip>//setw函数头文件
using namespace std;
const int N=9;
int main()
{
int m=N*N,time=m;//从m开始计数,总共循环time次
int a[N][N]={0};
int jiquan=0;//记录在第几圈
int i=0,j=N-1;//从右上角开始螺旋
while(time>0)
{
while(j>jiquan)
{a[i][j--]=m;m--;time--;}
while(i<N-1-jiquan)
{a[i++][j]=m;m--;time--;}
while(j<N-1-jiquan)
{a[i][j++]=m;m--;time--;}
jiquan++;//因为这里开始准备向第二圈螺旋了
while(i>jiquan)
{a[i--][j]=m;m--;time--;}
if(i==N/2&&j==N/2)
{
a[i--][j]=m;m--;time--;//保证最后一个数能够写到
}
}
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
cout<<setw(6)<<a[i][j];
cout<<endl<<endl;
}
return 0;
}
#include<iomanip>//setw函数头文件
using namespace std;
const int N=9;
int main()
{
int m=N*N,time=m;//从m开始计数,总共循环time次
int a[N][N]={0};
int jiquan=0;//记录在第几圈
int i=0,j=N-1;//从右上角开始螺旋
while(time>0)
{
while(j>jiquan)
{a[i][j--]=m;m--;time--;}
while(i<N-1-jiquan)
{a[i++][j]=m;m--;time--;}
while(j<N-1-jiquan)
{a[i][j++]=m;m--;time--;}
jiquan++;//因为这里开始准备向第二圈螺旋了
while(i>jiquan)
{a[i--][j]=m;m--;time--;}
if(i==N/2&&j==N/2)
{
a[i--][j]=m;m--;time--;//保证最后一个数能够写到
}
}
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
cout<<setw(6)<<a[i][j];
cout<<endl<<endl;
}
return 0;
}
0 0
- 螺旋队列的另一种解法
- 螺旋队列算法的解法
- 内螺旋队列的另一种求解方式
- 螺旋队列最优算法的解法
- 螺旋队列问题解法
- 排列组合的另一种解法
- 我的螺旋矩阵解法!
- LCS问题的另一种解法
- 上一篇的另一种解法
- 正整数划分的另一种解法
- 正整数划分的另一种解法
- 倍增算法的另一种解法
- 螺旋队列的问题
- 螺旋队列的打印
- 程序员面试宝典——螺旋队列解法解析
- 程序员面试宝典——螺旋队列解法解析2
- N 的阶乘的另一种解法
- 迷宫的另一种解法[非递归]
- LRU
- 制作简单网页
- [一步一步写算法导论]合并排序
- LINUX下用TAR方式安装MYSQL方法步骤
- Frogger poj 2253 floyd
- 螺旋队列的另一种解法
- android 在 button、textview等控件按下和选中的时候改变颜色或图片实现方法
- 韩语学习之第十九课
- Ubuntu13.10纯文本模式/终端中文乱码解决方法
- (模板)c++ 大数(正数加减乘除)
- 操作系统内存管理
- 排序算法之直接插入排序
- IOS开发------图片浏览器之UIImageView中的animation
- linux 忘记非root用户密码