永发信息网

若有n行n列数组,试编写一个php程序,分别求出两条对角线之和

答案:3  悬赏:40  手机版
解决时间 2021-03-15 15:04
  • 提问者网友:温旧梦泪无声
  • 2021-03-15 03:29
若有n行n列数组,试编写一个php程序,分别求出两条对角线之和
最佳答案
  • 五星知识达人网友:雾月
  • 2021-03-15 04:46
// 测试数据
$array = array(
array(1, 2, 3, 4),
array(5, 6, 7, 8),
array(9, 10, 11, 12),
array(13, 14, 15, 17)
);

// 处理函数
function process($arr) {
// 参数验证
if (! is_array($arr)) {
return false;
}
// 获取行数
$row = count($arr);
// 验证列数
foreach ($arr as $key => $value) {
if (! is_array($value)) {
return false;
}
if (count($value) != $row) {
return false;
}
}
$sum1 = 0; // 左上至右下
$sum2 = 0; // 左下至右上
for ($i = 0; $i < $row; $i++) { 
$sum1 += $arr[$i][$i];
$sum2 += $arr[$i][$row-$i-1];
}
return array($sum1,$sum2);
}

// 测试结果
echo "<pre>";
var_dump(process($array));
echo "</pre>";
exit;
全部回答
  • 1楼网友:你可爱的野爹
  • 2021-03-15 07:23
$array = array( array(1,2,3,9), array(4,5,6,1), array(1,3,4,1), array(1,3,4,1), );//矩阵 $rows = $cols = count($array); foreach ($array as $key => $val) { $sum_LUtoRD += $val[$key]; // 获取左上到右下的 $sum_RUtoLD += $val[$rows-$key-1];//获取右上到左下的 } echo $sum_LUtoRD.'<br />'; echo $sum_RUtoLD.'<br />';
  • 2楼网友:行雁书
  • 2021-03-15 05:54
a[n,n]={}; var sum=0; for(var i=0;i<n;i++){    sum+=a[i,i];    sum+=a[n-i-1,n-i-1]; } echo sun;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯