यहां हम देखेंगे कि, एक मैट्रिक्स मैजिक स्क्वायर है या नहीं, एक मैजिक स्क्वायर एक स्क्वायर मैट्रिक्स है, जहां प्रत्येक पंक्ति, प्रत्येक कॉलम और प्रत्येक विकर्ण का योग समान होता है।
मान लीजिए कि एक मैट्रिक्स नीचे जैसा है -
6 | 1 | 8 |
7 | 5 | 3 |
2 | 9 | 4 |
यह एक जादुई वर्ग है, यदि हम देखें, तो प्रत्येक पंक्ति, स्तंभ और विकर्णों का योग 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