- To print N x N magic matrix
User Input: 3
Output:
8 1 6 3 5 7 4 9 2
fun main(args: Array<String>) {
print("Enter your magic matrix size <Must be odd> : ");
val userInput = readLine()!!
var n:Int =userInput.toInt()
if(n%2==0) {
print("Magic matrix size must be an odd");
}
else {
var m= Array(n,{IntArray(n)})
var r:Int=n
var c:Int=n/2-1
var k:Int=1
for(i in 0..n-1) {
for(j in 0..n-1) {
r=(r+n)%n;
c++;
c%=n;
m[r][c]=k;
k++;
if(k%n==1){ r++; c--;}
else{ r--;}
}
}
println("Your Magic Matrix : ");
for(i in 0..n-1) {
for(j in 0..n-1) {
print(m[i][j]);
if(m[i][j]<10)print(" ");
else if(m[i][j]<100)print(" ");
else if(m[i][j]<1000)print(" ");
else print(" ");
}
print("\n\n");
}
}
}
Enter your magic matrix size <Must be odd> : 5 Your Magic Matrix : 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9Program
Remember : Magic matrix are always odd value matrix
like : 3x3,5x5,7x7,.....
So, you must first check it for an Odd value
Main Logic :
/*n: size of matrix
m: Matrix used to save,
r: holds row position, c: holds column position,
k: value to put every time in matrix */
var m= Array(n,{IntArray(n)})
var r:Int=n
var c:Int=n/2-1
var k:Int=1
for(i in 0..n-1) {
for(j in 0..n-1) {
r=(r+n)%n;
c++;
c%=n;
m[r][c]=k;
k++;
if(k%n==1){ r++; c--;}
else{ r--;}
}
}
To print your magic matrix
for(i in 0..n-1) {
for(j in 0..n-1) {
print(m[i][j]);
//To prettify Matrix size of upto 99
if(m[i][j]<10)print(" ");
else if(m[i][j]<100)print(" ");
else if(m[i][j]<1000)print(" ");
else print(" ");
}
print("\n\n");
}
How to write Magic Matrix Always Put value in every step(Increment value by 1 every time) ================================================================ 0. Start from 'top mid' 1. Now Follow the direction 'right top' 2. If you found any number multiple of Matrix Size then Follow the next direction 'down' 3. continue from step 1 ============================================================== Example in 3x3 Magic Matrix Step 0: Start from 'top mid' _ 1 _ _ _ _ _ _ _ Step 1: Follow the direction 'right top' _ 1 _ _ _ _ _ _ 2 Step 2: Follow the direction 'right top'(Not Multiple of 3, continue with rule 1) _ 1 _ 3 _ _ _ _ 2 Step 3: Follow the direction 'down'(Found Multiple of 3, rule 2) _ 1 _ 3 _ _ 4 _ 2 Step 4: Follow the direction 'right top'(Not Multiple of 3, continue with rule 1) _ 1 _ 3 5 _ 4 _ 2 Step 5: Follow the direction 'right top'(Not Multiple of 3, continue with rule 1) _ 1 6 3 5 _ 4 _ 2 Step 6: Follow the direction 'down'(Found Multiple of 3, rule 2) _ 1 6 3 5 7 4 _ 2 Step 7: Follow the direction 'right top'(Not Multiple of 3, continue with rule 1) 8 1 6 3 5 7 4 _ 2 Step 7: Follow the direction 'right top'(Not Multiple of 3, continue with rule 1) 8 1 6 3 5 7 4 9 2Concept
Coming Soon !
QuickStrength does not come from winning. Your struggles develop your strengths.