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

จะหมุนเมทริกซ์ขนาด n * n ถึง 90 องศา k ครั้งโดยใช้ C # ได้อย่างไร


เมทริกซ์ทั้งหมดจะต้องถูกหมุนจำนวน k ครั้ง ในเมทริกซ์ จะมีจำนวน n/2 สี่เหลี่ยมในเมทริกซ์ n*n และเราสามารถประมวลผลแต่ละตารางทีละอันโดยใช้การวนซ้ำที่ซ้อนกัน ในแต่ละช่องสี่เหลี่ยม องค์ประกอบเคลื่อนที่ในวงจรที่มีองค์ประกอบ 4 ส่วน จากนั้นเราจะสลับองค์ประกอบที่เกี่ยวข้องในทิศทางทวนเข็มนาฬิกาสำหรับแต่ละรอบ

องค์ประกอบที่ตำแหน่ง (n-1-j,i) จะไปที่ตำแหน่ง(i,j)

องค์ประกอบที่ตำแหน่ง (i,j) จะไปที่ตำแหน่ง (j,n-1-i)

องค์ประกอบที่ตำแหน่ง (j,n-1-i) จะไปที่ตำแหน่ง (n-1-i,n-1-j)

องค์ประกอบที่ตำแหน่ง (n-1-i,n-1-j) จะไปที่ตำแหน่ง (n-1-j,i)

ตัวอย่าง

<ก่อนหน้า>ใช้ระบบ การใช้ System.Text;namespace ConsoleApplication{ เมทริกซ์คลาสสาธารณะ { โมฆะสาธารณะ RotateMatrixByKTimes (int [,] เมทริกซ์ int numberOftimes) { int n =matrix.GetLength (0); สำหรับ (int k =0; k

ผลลัพธ์

16 12 14 157 6 3 1310 8 4 211 9 1 5