简单算法 简单矩阵输出
2014-12-09 12:14
197 查看
#include <iostream> using namespace std; int a[100][100]; void printRect(int n) { int k = n%2 ? n/2+1 : n/2; int i = 0, sum = 1; while(i < k) { for(int j = i; j <= n-i-1; j++) a[i][j] = sum++; for(int j = i+1; j <= n-i-1; j++) a[j][n-i-1] = sum++; for(int j = n-i-2; j >= i+1; j--) a[n-i-1][j] = sum++; for(int j = n-j-1; j >= i+1; j--) a[j][i] = sum++; i++; } for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { if(a[i][j] < 10) cout << '0'; cout << a[i][j]<< " "; } cout << endl; } } int main() { printRect(7); return 0; }
这类边界问题,自己昨天看到了又写了一遍,发现一口气写出了还是有点慢。
总结要点:1.所有都是根据一个变量i来推算的,先是横着输出,然后再是竖着输出,在横着输出,在竖着
2.求出要输出的次数为 n/2 偶数 n/2+1奇数
相关文章推荐
- 矩阵的简单算法
- 简单算法--输出一个整形数任意进制的表示
- 利用MPICH2计算矩阵相乘的简单算法
- C++中一些简单的数组算法(矩阵相乘) 第二篇
- JAVA代码—算法基础:将N*N的矩阵顺时针旋转90度输出元素
- 【算法】 输入n 输出一个n*n的zigzag矩阵 利用c++实现
- java研究一个简单的算法碰到这种输出,哎,以前还真没注意还能这样......
- [算法]最简单的数字倒序输出
- java算法之简单的二维矩阵旋转Rotate Image
- 简单算法--一个整形数逆序输出后正序输出/一段精彩的递归代码
- 以三元组形式输出用十字链表表示的稀疏矩阵中非零元素及其下标的算法
- 简单c语言算法练习题 矩阵鞍点 统计int类型的值中有多少位为1
- AI--工具篇 Python,输出矩阵与sigmoid简单运用
- JAVA之 简单构建一个矩阵并输出
- 算法 - 蛇形矩阵输出
- [算法]方正面试题:N×N矩阵螺旋打印输出
- njupt_oj:简单矩阵 :超时,求高效算法
- 简单的算法题,包括1.打印100——200之间的的素数2.输出乘法口诀表3.判断1000年——2000年之间的闰年,给出完整代码
- 逆矩阵及其矩阵线性一元方程的简单算法
- 螺旋数字矩阵的输出