遇到一道面试题,大家快来动动脑子

/**
* 题目:3X3 的九宫格 每个横竖斜相加都等于15,使用1-9数字。
* 要求:PHP语言,1-9数字不重复
* @date: 2015年8月20日
* @author: Administrator
* @return:
*/
// 添加一个符合条件的数组
$arr = array(1,2,3,4,5,6,7,8,9);
// 打乱数组顺序
shuffle($arr);
for($i=1;$i<9999;$i++){
    if($arr[0]+$arr[1]+$arr[2]==15 && $arr[3]+$arr[4]+$arr[5]==15 && $arr[6]+$arr[7]+$arr[8]==15 && $arr[0]+$arr[3]+$arr[6] ==15 && $arr[1]+$arr[4]+$arr[7]==15 && $arr[2] +$arr[5]+$arr[8]==15 && $arr[0]+$arr[4]+$arr[8]==15 && $arr[2]+$arr[4]+$arr[6] ==15 ){
        //  满足条件 打印die掉
        print_r($arr);die;
    }else{
        // 不满足条件 继续循环
        shuffle($arr);
    }
}
/*
 * 参考值
 * 4 9 2
 * 3 5 7
 * 8 1 6
 *  缺点是9999次不一定可以循环出来,需要刷新才行
 *  */
联系我们

邮箱 626512443@qq.com
电话 18611320371(微信)
QQ群 235681453

Copyright © 2015-2024

备案号:京ICP备15003423号-3