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

รหัส C ++ เพื่อค้นหาคะแนนของการชนะสี่เหลี่ยมบนกระดานสี่เหลี่ยม


สมมติว่าเรามีกระดานสี่เหลี่ยมของคำสั่ง n x n Amal และ Bimal กำลังเล่นเกม ในระหว่างเกม พวกเขาเขียนตัวเลขบนช่องสี่เหลี่ยมของกระดานโดยใช้กฎที่ไม่รู้จัก ขณะนี้กระดานกำลังแสดงองค์ประกอบหลังจากจบเกม เพื่อให้เข้าใจว่าใครชนะ เราต้องนับจำนวนช่องสี่เหลี่ยมที่ชนะ สี่เหลี่ยมหนึ่งกำลังชนะเราควรทำดังต่อไปนี้ หาผลรวมของตัวเลขทั้งหมดในช่องสี่เหลี่ยมที่ใช้คอลัมน์นี้ร่วมกัน และคำนวณผลรวมของตัวเลขทั้งหมดในช่องสี่เหลี่ยมที่แบ่งแถวนี้แยกกัน สี่เหลี่ยมจัตุรัสคือช่องสี่เหลี่ยมที่ชนะ หากผลรวมของหมายเลขคอลัมน์มากกว่าผลรวมของหมายเลขแถวอย่างเคร่งครัด

ดังนั้นหากอินพุตเป็นแบบ

5 7 8 4
9 5 3 2
1 6 6 4
9 5 7 3

แล้วผลลัพธ์จะเป็น 6 เพราะ

5 7 8 4
9 5 3 2
1 6 6 4
9 5 7 3

ขั้นตอน

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

t :=0n :=ขนาดของ Mfor เริ่มต้น i :=0 เมื่อฉัน <=n - 1 อัปเดต (เพิ่ม i ขึ้น 1) ทำ:สำหรับการเริ่มต้น j :=0 เมื่อ j <=n - 1 , อัปเดต (เพิ่ม j ขึ้น 1), ทำ:s :=0 l :=0 สำหรับการเริ่มต้น k :=0 เมื่อ k <=n - 1, อัปเดต (เพิ่ม k ขึ้น 1), do:s :=s + M [i, k] l :=l + M[k, j] ถ้า l> s แล้ว:(เพิ่ม t คูณ 1) return t

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#include ใช้เนมสเปซ std;int แก้ (เวกเตอร์<เวกเตอร์> M){ int t =0; int n =M.size(); สำหรับ (int i =0; i <=n - 1; i++) สำหรับ (int j =0; j <=n - 1; j++){ int s =0; int ล. =0; สำหรับ (int k =0; k <=n - 1; k++){ s +=M[i][k]; ล. +=M[k][j]; } if (l> s) t++; } return t;}int main(){ vector> matrix ={ { 5, 7, 8, 4 }, { 9, 5, 3, 2 }, { 1, 6, 6, 4 }, { 9, 5, 7, 3 } }; ศาล <<แก้ (เมทริกซ์) < 

อินพุต

<ก่อน>{ { 5, 7, 8, 4 }, { 9, 5, 3, 2 }, { 1, 6, 6, 4 }, { 9, 5, 7, 3 } } }

ผลลัพธ์

6