Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

เมทริกซ์ที่โดดเด่นในแนวทแยงในโปรแกรม C++


ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่ช่วยให้เราค้นหาว่าเมทริกซ์ที่กำหนดมีความโดดเด่นในแนวทแยงหรือไม่

เมทริกซ์จะเรียกว่าเมทริกซ์ที่โดดเด่นในแนวทแยง ถ้าผลรวมขององค์ประกอบในเมทริกซ์อื่นที่ไม่ใช่องค์ประกอบแนวทแยงนั้นน้อยกว่าเมทริกซ์ในแนวทแยง มาดูตัวอย่างกัน

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

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น