这是一道某公司的算法题,我们姑且称之为“数字绕圈算法”。
题目:给定一个数字N,以此生成一个N^2的二维矩阵,以某个方向为基准从1开始填充数字。假设数字5那么开始绕圈,最终的结果显示为:
1 16 15 14 13
2 17 24 23 12
3 18 25 22 11
4 19 20 21 10
5 6 7 8 9
代码如下:
var num = 3, res; // 定义全局变量 document.getElementById('btn').onclick = function(){ num = parseInt(document.getElementById('num').value) || num; res = []; for(var i =0;i<num; i++){ res[i] = []; for(var v=0;v<num;v++) res[i][v] = ''; } calc(num); print(); } //递归的算法 var calc = function(n, r){ r = r || 0; // 圈数 var x=y=0, // 初始化坐标 start = r, // 开始位置 end = n-1, // 结束位置 startNum= !r ? 1 : n * 4 * r +1; //显示的数字 // 奇数情况下判断是否是最后一个数字 if (start==end){ res[start][start] = Math.pow(num,2); return; } // 四个方向填充 for(x=start; x<end; x++){ res[x][r] = startNum++; } for(y=start; y<end; y++){ res[x][y] = startNum++; } for(; x>r; x--){ res[x][y] = startNum++; } for(; y>r; y--){ res[x][y] = startNum++; } // 偶数情况下判断判断完结 if ( x>Math.ceil(n/2)){ return; } calc(--n, ++r); } //显示结果 var resDiv = document.getElementById('res'); var print = function(){ var str = []; for(var i in res){ for(var m in res[i]){ str.push('<div>', res[i][m], '</div>'); } str.push('<br/>'); } resDiv.innerHTML = str.join(''); }
相关推荐
PID算法相关资料数字PID控制算法C语言实现PID算法等源码及技术文档资料合集: 51单片机PID算法程序_三_增量式PID控制算法.pdf AN_SPMC75_0012 ARDUINO C语言PID算法.pdf C语言实现PID算法-27.pdf C语言实现PID算法-28...
数字波束形成算法仿真实现,一篇不错的文章,详细介绍了波束形成算法的基础知识,希望对大家有所帮助。
1)利用C\C++语言实现DSA算法。 2)DSA中的Hash函数采用SHA算法。 (1)消息填充:因为我们存储的时候是以字节为单位存储的,所以消息的长度(单位:位)一定是 8 的倍数。而我们填充的时候也一定是 8 位、8 位...
实现数字签名算法以及验证数字签名算法的正确性。本程序经本人验证
基于matlab的数字图像增强算法研究与实现
《精通Visual C++数字图像处理典型算法及实现》源代码 http://xinlingzoulang.cn/
数字图像处理算法实现的源程序,编译环境VC6.0.包括图像点运算,几何变换,滤波,傅立叶变换等
visual c++ 数字图像处理典型算法及实现(第二版) 求是科技 张宏林编著 人民邮电出版社
RSA算法和RSA数字签名算法的实现,RSA算法和RSA数字签名算法的实现,RSA算法和RSA数字签名算法的实现
胡广书的教材,《数字信号处理——理论、算法与实现》的答案,不是光盘里面的内容哦~~适合初学DSP的学习!
数字信号处理 理论算法与实现 胡广书(第二版)课后题答案及指导1-13章全
《数字信号处理理论、算法与实现》是2003年清华大学出版社出版的图书,作者是胡广书。该书系统地介绍了数字信号处理的理论、相应的算法及这些算法的软件与硬件实现。
Visual C++数字图像处理典型算法及实现(第一版) 本书已绝版
精通Visual C ++数字图像处理典型算法及实现 第2版 随书代码。
数字信号处理理论、算法与实现 第3版 [胡广书 编著] 2012年版,
基于matlab的数字图像增强算法研究与实现讲解.docx基于matlab的数字图像增强算法研究与实现讲解.docx基于matlab的数字图像增强算法研究与实现讲解.docx基于matlab的数字图像增强算法研究与实现讲解.docx基于matlab的...
基于matlab的数字图像增强算法研究与实现讲解.pdf基于matlab的数字图像增强算法研究与实现讲解.pdf基于matlab的数字图像增强算法研究与实现讲解.pdf基于matlab的数字图像增强算法研究与实现讲解.pdf基于matlab的数字...
基于matlab的数字图像增强算法研究与实现教材.pdf基于matlab的数字图像增强算法研究与实现教材.pdf基于matlab的数字图像增强算法研究与实现教材.pdf基于matlab的数字图像增强算法研究与实现教材.pdf基于matlab的数字...
基于matlab的数字图像增强算法研究与实现教材.docx基于matlab的数字图像增强算法研究与实现教材.docx基于matlab的数字图像增强算法研究与实现教材.docx基于matlab的数字图像增强算法研究与实现教材.docx基于matlab的...