(Computation) A magic square is a square of numbers with N rows and N columns,in which each integer value from 1 to (N*N)appears exactly once,and the sum of each column,each row,and each diagonal is the same value.
For example figure 7.17 shows a magic square in which N = 3,and the sum of the rows,columns,and diagonal is 15.
Write a progam that constructs and displays a magic square for any given odd number N.
This is the algorithm.
Insert the value 1 in the middle of the first rw (element[0][N%2]).
After a value ,x,has been placed, move up one row and to the right one column.
Place the next number,x+1,there unless:
(1) you move off the top (row =-1)in any column.
Then move to the bottom row and place the next number,x+1,in the bottom row of that column.
(2) You move off the right end (column = N)of a row.
Then place the next number,x+1,in the first column of that row .
(3)You move a position that is alredy filled or out of the uper-right corner.
Then place the next number,x+1,immediatily below x.
Stop when you have placed as many elelments as there are in the array.
(คำนวณ) Square ที่น่ามหัศจรรย์ใจมีขนาดของหมายเลขพร้อมด้วยแถวและคอลัมน์ n n ที่ค่าจำนวนเต็มจาก 1 ( N * n )จะปรากฏขึ้นตรงกับหนึ่งครั้งและจำนวนเงินที่ของคอลัมน์แต่ละแต่ละแถวและเส้นทแยงมุมแต่ละครั้งเป็นค่าเดียวกันกับที่.
ตัวอย่างเช่นรูปที่ 7.17 แสดงตารางที่น่ามหัศจรรย์ใจในที่ N = 3 และจำนวนของแถวที่เส้นทแยงมุมและเสาหินคือ 15
เขียน progam ที่สร้างและแสดงผลที่น่ามหัศจรรย์ใจสำหรับใดๆที่ได้รับหมายเลขคี่ N .
นี้เป็นอัลกอริธึม.
ใส่ค่า 1 ในส่วนกลางของที่แรก RW (แผ่น[ 0 ][ N % 2 ])..
หลังจากที่ค่า, x ,ได้รับการวาง,เลื่อนขึ้นหนึ่งแถวและไปทางขวาหนึ่งคอลัมน์.
สถานที่ที่อยู่ถัดจากหมายเลขชิ้นส่วน, x 1 ,มีเว้นแต่:
( 1 )คุณสามารถย้ายออกจากที่ด้านบน(แถว= - 1 )ในคอลัมน์.
จากนั้นให้ย้ายไปที่ด้านล่างแถวและเป็นสถานที่ที่อยู่ถัดจากหมายเลขชิ้นส่วน, x 1 ,ในที่ด้านล่างของแถวที่คอลัมน์.
( 2 )ที่คุณต้องการย้ายออกจากปลายด้านขวา(คอลัมน์= N )ของแถว.
แล้ววางที่อยู่ถัดออกไปหมายเลขชิ้นส่วน, x 1 ,ในคอลัมน์แรกของแถวที่..
( 3 )ที่ให้คุณย้ายไปที่ตำแหน่งนั้นจะเต็มไปด้วย alredy หรือออกจากชั้น - มุมขวา.
แล้ววางที่อยู่ถัดออกไปหมายเลขชิ้นส่วน, x 1 , immediatily ด้านล่าง X .
หยุดเมื่อคุณได้วางเป็น elelments จำนวนมากที่มีอยู่ในความหลากหลายที่
การแปล กรุณารอสักครู่..