ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่ช่วยให้เราค้นหาว่าเมทริกซ์ที่กำหนดมีความโดดเด่นในแนวทแยงหรือไม่
เมทริกซ์จะเรียกว่าเมทริกซ์ที่โดดเด่นในแนวทแยง ถ้าผลรวมขององค์ประกอบในเมทริกซ์อื่นที่ไม่ใช่องค์ประกอบแนวทแยงนั้นน้อยกว่าเมทริกซ์ในแนวทแยง มาดูตัวอย่างกัน
421 352 247
เมทริกซ์ด้านบนเป็นเมทริกซ์ที่โดดเด่นในแนวทแยง เพราะ
4 > 2 + 1 5 ≥ 3 + 2 7 > 4 + 2
องค์ประกอบในแนวทแยงทั้งหมดมีค่ามากกว่าหรือเท่ากับผลรวมขององค์ประกอบที่ไม่เป็นแนวทแยงในแถวเดียวกัน
มาดูขั้นตอนการแก้ปัญหากัน
-
วนซ้ำแถวและคอลัมน์ของเมทริกซ์
-
หาผลรวมขององค์ประกอบที่ไม่เป็นแนวทแยง
-
เปรียบเทียบผลรวมขององค์ประกอบที่ไม่ทแยงกับองค์ประกอบในแนวทแยง
-
หากผลรวมขององค์ประกอบที่ไม่ใช่แนวทแยงมากกว่าองค์ประกอบในแนวทแยง ให้พิมพ์ "ไม่"
-
-
พิมพ์ "ใช่"
ตัวอย่าง
มาดูโค้ดกันเลย
#include <bits/stdc++.h> using namespace std; #define N 3 bool isDiagonallyDominantMatrix(int matrix[N][N], int n) { for (int i = 0; i < n; i++) { int sum = 0; for (int j = 0; j < n; j++) { if (i != j) { sum += abs(matrix[i][j]); } } if (abs(matrix[i][i]) < sum) { return false; } } return true; } int main() { // int matrix[N][N] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; int matrix[N][N] = {{4, 2, 1}, {3, 5, 2}, {2, 4, 7}}; if (isDiagonallyDominantMatrix(matrix, 3)) { cout << "Yes" << endl; } else { cout << "No" << endl; } return 0; }
ผลลัพธ์
หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้
Yes
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น