在C ++中检查给定矩阵是否为幻方
在这里,我们将看到,无论矩阵是否是幻方,幻方都是方矩阵,其中每一行,每一列和每个对角线的总和是相同的。
假设矩阵如下-
如果看到的话,这是一个魔方,每行,每列和对角线的总和为15。
要检查矩阵是否为幻方,我们必须找到主对角线和副对角线和,如果它们相同,则为幻方,否则为非。
示例
#include <iostream>
#define N 3
using namespace std;
bool isMagicSquare(int mat[][N]) {
int sum_diag = 0,sum_diag_second=0;
for (int i = 0; i < N; i++)
sum_diag = sum_diag + mat[i][i];
for (int i = 0; i < N; i++)
sum_diag_second = sum_diag_second + mat[i][N-1-i];
if(sum_diag!=sum_diag_second)
return false;
for (int i = 0; i < N; i++) {
int rowSum = 0;
for (int j = 0; j < N; j++)
rowSum += mat[i][j];
if (rowSum != sum_diag)
return false;
}
for (int i = 0; i < N; i++) {
int colSum = 0;
for (int j = 0; j < N; j++)
colSum += mat[j][i];
if (sum_diag != colSum)
return false;
}
return true;
}
int main() {
int mat[][N] = {{ 6, 1, 8 },
{ 7, 5, 3 },
{ 2, 9, 4 }};
if (isMagicSquare(mat))
cout << "It is Magic Square";
else
cout << "It is Not a magic Square";
}输出结果
It is Magic Square
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短