若有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;
$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;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯