大佬教程收集整理的这篇文章主要介绍了蛇形矩阵,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
蛇形矩阵,比如:
1,2,3
8,9,4
7,6,5
要求输入3
输出1,2,3,8,9,4,7,6,5
用php和Js分别试着解了下:
/*
Created by licheng on 16/4/4.
*/
function snake(n){
function createMatrix(n) {
var matrix = new Array(n)
for (var i = 0; i < n; i++) {
matrix[i] = new Array(n)
}
return matrix
}
var matrix = createMatrix(n)
padding(matrix,n)
console.log(matrix.toString())
function padding(m,n){
var d = 1 // 控制填充方向,初始化向右(1) ,向下(2),向左(3) 向上(4)
var a = 0,//a,b为二维数组索引
b = 0,c = 1,// 方向改变变量,控制向右
i=1,//填充数字,从1到n*n
e = n,//控制改变方向的变量,控制向下
f=0 //方向改变变量,控制向左
while(i<= n*n){
if(d === 1){
if(!m[a][b]){
m[a][b] = i++
b++
if(b === E){
d = 2 //down
b--
a++
//cons<a href="https://m.code.cc/tag/ol/" target="_blank" class="keywords">ol</a>e.log(a+'and'+b)
}
}else{
e--
a++ ;b++;
}
}else if(d === 2){
if(!m[a][b]){
m[a][b] = i++
a++
if(a === E){
d = 3 //<a href="https://m.code.cc/tag/left/" target="_blank" class="keywords">left</a>
b--
a--
}
}
}else if(d === 3){
if(!m[a][b]){
m[a][b] = i++
b--
if(b < f){
d = 4 //up
f++
a--
b++ //回到首位
}
}
}
else if(d === 4){
if(!m[a][b]){
// cons<a href="https://m.code.cc/tag/ol/" target="_blank" class="keywords">ol</a>e.log(a+'and'+b)
m[a][b] = i++
a--
if(a<C){
c++
d = 1 //right
}
}
}
}
}
}
snake(3)
<>php
/*
Created by phpStorm.
User: licheng
Date: 16/4/4
Time: 下午5:57
*/
function snake($n){
function createMatrix($n) {
$matrix = array();
for ($i = 0; $i < $n;="" $i++)="" {="" $matrix[$i]="array()" ;="" }="" return="" $matrix;="" };="">$matrix = createMatrix($n);
function <a href="https://m.code.cc/tag/padding/" target="_blank" class="keywords">padding</a>($m,$n){
$d = 1 ;// right
$a = 0; $b = 0;$c = 1;$i=1; $e = $n;$f=0 ;
while($i<= $n*$n){
if($d == 1){
if(!$m[$a][$b]){
$m[$a][$b] = $i++;
// var_dump($m);
$b++ ;
if($b == $E){
$d = 2; //down
$b--;
$a++ ;
}
}else{
$e--;
$a++ ;$b++;
}
}else if($d == 2){
if(!$m[$a][$b]){
$m[$a][$b] = $i++;
$a++;
if($a == $E){
$d = 3; //<a href="https://m.code.cc/tag/left/" target="_blank" class="keywords">left</a>
$b--;
$a--;
}
}
}else if($d == 3){
if(!$m[$a][$b]){
$m[$a][$b] = $i++;
$b--;
if($b < $f){
$d = 4; //up
$f++;
$a--;
$b++ ;//回到首位
}
}
}
else if($d === 4){
if(!$m[$a][$b]){
// cons<a href="https://m.code.cc/tag/ol/" target="_blank" class="keywords">ol</a>e.log(a+'and'+b)
$m[$a][$b] = $i++ ;
$a--;
if($a<$C){
$c++;
$d = 1; //right
}
}
}
}
return $m;
};
$matrix= padding($matrix,$n);
for($x=0;$x<$n;$x++){
for($y=0;$y<$n;$y++){
echo $matrix[$x][$y].',';
}
}
}
snake(3);
?>
以上是大佬教程为你收集整理的蛇形矩阵全部内容,希望文章能够帮你解决蛇形矩阵所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。