这是一道某公司的算法题,我们姑且称之为“数字绕圈算法”。
题目:给定一个数字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(''); }
相关推荐
这道名为“面试题 数字绕圈(含答案)”的题目是面试中常见的逻辑思维与编程挑战,尤其在IT行业中,这种类型的问题被用来评估应聘者的观察力、问题解决能力和编程技能。通常这类问题会涉及一定的数学规律和编程实现,...
PID算法相关资料数字PID控制算法C语言实现PID算法等源码及技术文档资料合集: 51单片机PID算法程序_三_增量式PID控制算法.pdf AN_SPMC75_0012 ARDUINO C语言PID算法.pdf C语言实现PID算法-27.pdf C语言实现PID算法-28...
基于Matlab的数字图像增强算法研究与实现 数字图像增强是一种非常重要的图像处理技术,旨在提高图像的质量和可读性。在图像获取和传输过程中,图像易受到各种噪声的干扰,使图像的质量下降,对图像分析不利。因此,...
《数字信号处理理论、算法与实现》是2003年清华大学出版社出版的图书,作者是胡广书。该书系统地介绍了数字信号处理的理论、相应的算法及这些算法的软件与硬件实现。
1)利用C\C++语言实现DSA算法。 2)DSA中的Hash函数采用SHA算法。 (1)消息填充:因为我们存储的时候是以字节为单位存储的,所以消息的长度(单位:位)一定是 8 的倍数。而我们填充的时候也一定是 8 位、8 位...
数字信号处理理论算法与实现胡广书第二版-数字信号处理 理论算法与实现 胡广书 第二版.part04.rar 差不多700页
L变换、DCT及其在图像压缩中的应用)、信号处理中若干典型算法(如抽取与插值、子带分解、调制与解调、反卷积、SVD、独立分量分析及同太民滤波等)、平稳随机信号的基本概念、经典功率谱估计、参数模型功率谱估计、...
本主题将深入探讨如何使用C语言实现数字信号处理算法,主要包括信号的发生、信号采集以及滤波算法。 首先,我们要了解数字信号的发生。在C语言中,可以使用循环结构和数学函数来生成各种类型的数字信号,如正弦波、...
《Visual C++ 数字图像处理典型算法及实现(第二版)》是一本深入探讨使用Microsoft Visual C++进行数字图像处理的专著,由张宏林编著,由人民邮电出版社出版。这本书全面覆盖了数字图像处理领域的核心算法,并通过...
《数字信号处理理论、算法与实现》是胡广书教授编著的一本经典教材,主要针对数字信号处理领域的核心概念、基本理论以及实际应用进行了深入浅出的阐述。该书第三版于2012年出版,反映了近年来该领域的新发展和技术...
《数字信号处理:理论算法与实现》是胡广书教授编著的一本经典教材,主要针对数字信号处理领域的基础知识、核心算法以及实际应用进行了深入浅出的讲解。这本书的第二版更加完善,涵盖了从基本概念到高级技术的广泛...
《Visual C++数字图像处理典型算法及实现》一书,主要涵盖了C++在数字图像处理领域的广泛应用和技术。作为一本已绝版的专业书籍,它对于学习和研究C++图像处理技术的人来说,具有很高的参考价值。书中深入浅出地讲解...
《数字信号处理理论、算法与实现》是2003年清华大学出版社出版的图书,作者是胡广书。绪论 O.1数字信号处理的理论 O.2数字信号处理的实现 0.3数字信号处理的应用 O.4关于数字信号处理的学习 参考文献 上篇经典数字...
《精通Visual C++数字图像处理典型算法及实现(第2版)》是一本深度解析数字图像处理技术,并结合Visual C++编程环境进行实践操作的专著。这本书旨在为初学者和有一定基础的开发者提供一个全面了解和掌握数字图像...
《数字信号处理:理论算法与实现》是胡广书教授的经典著作,第二版更是深受广大读者和学习者喜爱。这本书深入浅出地介绍了数字信号处理的基础理论、算法以及其实现方法,是通信工程、电子工程、计算机科学等相关领域...
《数字信号处理:理论、算法与实现》是一本深入探讨数字信号处理领域的经典著作,它涵盖了数字信号处理的基础理论、核心算法以及实际应用。这本书的配套光盘包含了C语言、Fortran语言和Matlab的程序代码,为读者提供...
Visual+C++数字图像处理典型算法及实现 全书配套光盘
这里的压缩包文件聚焦于RSA算法的C++实现以及数字签名的相关程序。RSA是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因其发明者的名字首字母命名。它广泛应用于数字证书、网络通信...
包涵三个RSA算法,c++是实现,数字签名的合集,三个独自的程序,可以独自编译运行,VC6.0下编译 包涵三个RSA算法,c++是实现,数字签名的合集,三个独自的程序,可以独自编译运行,VC6.0下编译