php3×3二维数组[ [1, 2, 3], [4, 5, 6], [7, 8, 9] ],它的对角线值为(1,5,9)和(3,5,7),对角线相加和为1+5+9+3+7 = 25。然而在计算的时候要如何找到这些数字并相加呢?
一、3×3数组求对角线之和
1 2 3
[0][0] [0][1] [0][2]
4 5 6
[1][0] [1][1] [1][2]
7 8 9
[2][0] [2][1] [2][2]
通过规律发现,它们的坐标:[0][0]、[1][1]、[2][2]、[0][2]、[1][1]、[2][0] ,x+y正好能被2整除。即公式为:(i+j)%2==0,最后通过遍历数组,对坐标进行判断,就能得出结果。
示例代码:<?php
$arr = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
$sum = 0;
for ($i = 0; $i
for ($j = 0; $j
if(($i+$j)%2 ==0){
$sum += $arr[$i][$j];
}
}
}
echo '数组对角线和为:' . $sum;// 数组对角线和为:25
二、3×3对角线之和(不去除相交数)
它的对角线值为(1,5,9)和(3,5,7),对角线相加和为1+5+9+3+5+7 = 30<?php
$arr = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
$sum = 0;
for ($i = 0; $i
for ($j = 0; $j
if ($i == $j) {
$sum += ($arr[$i][$j] + $arr[$i][2-$i]);
}
}
}
echo '数组对角线和为:' . $sum;// 数组对角线和为:30