打印绕圈矩阵(C语言风格的代码)
2014-12-27 14:35
204 查看
// raoQuan.cpp : Defines the entry point for the console application. //1 12 11 10 //2 13 16 9 //3 14 15 8 //4 5 6 7 #include "stdafx.h" #include "iostream.h" #include "malloc.h" //根据x,y和size来返回这个位置的数值; x,y均从0开始计数 int orbit(int x,int y,int size); int girth(int size); int offsetOfBegin(int x,int y,int size); int cycleXy(int x,int y,int size) { int value=0; int level=orbit(x,y,size); int offset=offsetOfBegin(x,y,size); int i=-1; while(level>0) { level--; value += girth(size-level*2); } value += offset; return value; } //根据size来返回周长 int girth(int size) { if(size == 1) { return 1; } return (size-1)*4; } //根据x,y,size确定坐标在第几层轨道 int orbit(int x,int y,int size) { //int levels = size/2; //levels = size%2==0 ? levels : levels+1; int ox=size-1-x < x ? size-1-x : x; int oy=size-1-y < y ? size-1-y : y; return ox < oy ? ox : oy; } //坐标x,y相对于该层轨道起始点的偏移 int offsetOfBegin(int x,int y,int size) { int levels = size/2; levels = size%2==0 ? levels-1 : levels; int x0,y0; //轨道起始点 int offset=0; int level=orbit(x,y,size); x0=y0=level; int max=girth(size-level*2); offset=(x-x0)+(y-y0); if(x>y) { offset = max - offset; } return offset+1; } void raoQuan(unsigned int size) { char *str; str = NULL; str = (char *)malloc(size*size*sizeof(char)); int len=size*size; int i(0),index(0),nSize(size); for(;i<len;i++) { str[index]=i; index += nSize; } } int main(int argc, char* argv[]) { int size(7); //cin >> size; int x(0),y(0); for(y;y<size;y++) { for(x=0;x<size;x++) { cout << cycleXy(x,y,size) << '\t'; } cout << endl; } return 0; }
相关文章推荐
- 【cocos2d-x从c++到js】20:脚本语言风格的JS代码 推荐
- HDU_4920_Matrix multiplication_杭电多校1010_矩阵乘法的代码风格
- 《JavaScript 语言精粹》 学习笔记 —— 第九章 代码风格
- 矩阵螺旋输出打印原代码
- 顺时针打印矩阵(图文详解,代码详细注释)
- kotlin 语言入门指南(二)--代码风格
- 浅谈代码风格与语言细节理解对程序的影响
- 代码之美:实现数绕圈打印
- JAVA代码—算法基础:转圈打印矩阵
- 80X86汇编语言课程设计报告-打印水仙花数(含代码)
- 《JavaScript 语言精粹》 学习笔记 —— 第九章 代码风格
- Google的代码风格规范,各种语言都很全
- 顺时针打印矩阵(C语言代码)
- Java编程实现打印螺旋矩阵实例代码
- 逆时针顺序的螺旋矩阵打印
- 区区314行TCL代码,就将欧洲地图画出,真是每种语言都有存在的必然啊?
- samba unix风格的配置文件配置信息读取C代码.
- 多语言代码生成器开发日志2
- html 另存为/打印/刷新/查看原文件等 代码
- (公享代码)Web打印,简单实现