挺有意思的 我也来一个:
<?php
/**
**得到数组
**/
function getSolution($num){
if (!is_int($num))//参数检查..确认是否为整数,是否需要大于0等等
return;
$arr = array();//初始化变量
for ($i = 0;$i<$num;$i++)//对数组进行处理
{
$arr[] = $num - $i;
if($i>0){
$arr[] = $arr[0];
array_shift($arr);
}
}
krsort($arr);
return array_values($arr);//返回数组
//return implode(',',$arr);//返回字符串
}
/**
**验证数组是否正确
**/
function checkSolution($arr){
//参数验证,检查是否为数组,并且数组里面有参数
if (!is_array($arr)&&!empty($arr))
return;
$num = count($arr);
for ($i = 0;$i<$num;$i++)
{
if ($i == $num){
echo $i;
return;
}
$arr[] = $arr[0];
array_shift($arr);
array_shift($arr);
echo $i+1,' -> ',implode(',',$arr),'<br />';
}
}
checkSolution(getSolution(13));
/**
输出:
1 -> 12,2,8,3,11,4,9,5,13,6,10,7
2 -> 8,3,11,4,9,5,13,6,10,7,12
3 -> 11,4,9,5,13,6,10,7,12,8
4 -> 9,5,13,6,10,7,12,8,11
5 -> 13,6,10,7,12,8,11,9
6 -> 10,7,12,8,11,9,13
7 -> 12,8,11,9,13,10
8 -> 11,9,13,10,12
9 -> 13,10,12,11
10 -> 12,11,13
11 -> 13,12
12 -> 13
13 ->
**/
?>