数字方阵的旋转填充(递归方法)
2015-06-16 19:27
302 查看
数字方阵的旋转填充
其原理如图所示一圈圈的填充,
测试代码:
测试结果:
示例2
给定一个nxn(n<10)的方阵,请输出左上角开始逆时针从大到小填充方阵的结果。
输入方阵的大小n,输出方阵填充结果,每个数字均占两位并右对齐,以一个空格隔开。
执行结果:
来自清华大学MOOC课件
void FillMatrix(int matrix ,int size,int num,int offset) { //matrix为总矩阵,size为剩余矩阵的大小,num为要填的第一个数,offset为剩余矩阵在总矩阵中的位置 //递归终止条件 if(size==0) return; //递归终止条件 if(size==1) { matrix[offset][offset]=num; return; } //先填充外围 int i; for(i=0;i<size-1;i++) { matrix[offset+i][offset]=num+i; matrix[offset+size-1][offset+i]=num+(size-1)+i; matrix[offset+size-1-i][offset+size-1]=num+2*(size-1)+i; matrix[offset][offset+size-1-i]=num+3*(size-1)+i; } //再递归填充内核(小了一圈的子矩阵) FillMatrix(matrix,size-2,num+4*(size-1),offset+1); }
其原理如图所示一圈圈的填充,
测试代码:
int main() { int Matrix[5][5]; FillMatrix(Matrix,5,1,0); int i,j; for(i=0;i<5;i++) { for(j=0;j<5;j++) { cout<<setw(4)<<Matrix[i][j]<<" "; } cout<<endl; } return 0; }
测试结果:
示例2
给定一个nxn(n<10)的方阵,请输出左上角开始逆时针从大到小填充方阵的结果。
输入方阵的大小n,输出方阵填充结果,每个数字均占两位并右对齐,以一个空格隔开。
#include<iostream> #include<iomanip> using namespace std; const int N=10; void FillMatrix(int matrix ,int size,int num,int offset) { //matrix为总矩阵,size为剩余矩阵的大小,num为要填的第一个数,offset为剩余矩阵在总矩阵中的位置 //递归终止条件 if(size==0) return; //递归终止条件 if(size==1) { matrix[offset][offset]=num; return; } //先填充外围 int i; for(i=0;i<size-1;i++) { matrix[offset+i][offset]=num-i; matrix[offset+size-1][offset+i]=num-(size-1)-i; matrix[offset+size-1-i][offset+size-1]=num-2*(size-1)-i; matrix[offset][offset+size-1-i]=num-3*(size-1)-i; } //再递归填充内核(小了一圈的子矩阵) FillMatrix(matrix,size-2,num-4*(size-1),offset+1); } int main() { int Matrix ; int n; cin>>n; FillMatrix(Matrix,n,n*n,0); int i,j; for(i=0;i<n;i++) { for(j=0;j<n;j++) { cout<<setw(2)<<Matrix[i][j]<<" "; } cout<<endl; } return 0; }
执行结果:
来自清华大学MOOC课件
相关文章推荐
- Exploring the 7 Different Types of Data Stories
- OC基础:继承.初始化方法,便利构造器 分类: ios学习 OC 2015-06-16 19:27 84人阅读 评论(0) 收藏
- 小能手团队事后诸葛亮会议
- Soapui Pro 使用
- 字符串查找
- 双目运算符重载
- XXTEA加密算法C++版
- PuTTY+Xming实现X11的ssh转发
- 查询MySQL锁等待的语句
- 献给老年朋友们的网址汇集
- HttpClient使用详解
- 大佬的小败局之 腾讯微博
- 第七章T3
- 也谈莫言荣获诺贝尔文学奖后我的“低调”
- Linux U盘安装
- clips 前端 js 倒计时 获取验证码的按钮
- android获取手机信息大全
- Android Auto CompleteTexview
- 手机回收,隐私安全需重视
- bzoj2748 水dp