All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars    
perplexus dot info

Home > Just Math
Array Arrangement (Posted on 2013-12-19) Difficulty: 3 of 5
Arrange the digits from 1 to 9 in a 3 x 3 array in such a way that the sum of a number's immediate neighbors (including diagonals) is a multiple of that number. (Disregard rotations and reflections.)

See The Solution Submitted by K Sengupta    
No Rating

Comments: ( Back to comment list | You must be logged in to post comments.)
Solution computer solution Comment 1 of 1

DECLARE SUB permute (a$)
CLS
a$ = "123456789": h$ = a$
DO
 IF MID$(a$, 1, 1) < MID$(a$, 3, 1) AND MID$(a$, 1, 1) < MID$(a$, 7, 1) AND MID$(a$, 1, 1) < MID$(a$, 9, 1) THEN
 IF MID$(a$, 3, 1) < MID$(a$, 7, 1) THEN
  grid(1, 1) = VAL(MID$(a$, 1, 1))
  grid(1, 2) = VAL(MID$(a$, 2, 1))
  grid(1, 3) = VAL(MID$(a$, 3, 1))
  grid(2, 1) = VAL(MID$(a$, 4, 1))
  grid(2, 2) = VAL(MID$(a$, 5, 1))
  grid(2, 3) = VAL(MID$(a$, 6, 1))
  grid(3, 1) = VAL(MID$(a$, 7, 1))
  grid(3, 2) = VAL(MID$(a$, 8, 1))
  grid(3, 3) = VAL(MID$(a$, 9, 1))
  good = 1
  FOR row = 1 TO 3
  FOR col = 1 TO 3
    tot = 0
    FOR r = row - 1 TO row + 1
     FOR c = col - 1 TO col + 1
       tot = tot + grid(r, c)
     NEXT
    NEXT
    IF tot MOD grid(row, col) <> 0 THEN good = 0: EXIT FOR
  NEXT
  IF good = 0 THEN EXIT FOR
  NEXT
  IF good THEN
     PRINT MID$(a$, 1, 3)
     PRINT MID$(a$, 4, 3)
     PRINT MID$(a$, 7, 3)
     PRINT
  END IF
 END IF
 END IF
 permute a$
LOOP UNTIL a$ = h$

SUB permute (a$)
DEFINT A-Z
 x$ = ""
 FOR i = LEN(a$) TO 1 STEP -1
  l$ = x$
  x$ = MID$(a$, i, 1)
  IF x$ < l$ THEN EXIT FOR
 NEXT

 IF i = 0 THEN
  FOR j = 1 TO LEN(a$) \ 2
   x$ = MID$(a$, j, 1)
   MID$(a$, j, 1) = MID$(a$, LEN(a$) - j + 1, 1)
   MID$(a$, LEN(a$) - j + 1, 1) = x$
  NEXT
 ELSE
  FOR j = LEN(a$) TO i + 1 STEP -1
   IF MID$(a$, j, 1) > x$ THEN EXIT FOR
  NEXT
  MID$(a$, i, 1) = MID$(a$, j, 1)
  MID$(a$, j, 1) = x$
  FOR j = 1 TO (LEN(a$) - i) \ 2
   x$ = MID$(a$, i + j, 1)
   MID$(a$, i + j, 1) = MID$(a$, LEN(a$) - j + 1, 1)
   MID$(a$, LEN(a$) - j + 1, 1) = x$
  NEXT
 END IF
END SUB

finds

265
731
984

 


  Posted by Charlie on 2013-12-19 19:07:41
Please log in:
Login:
Password:
Remember me:
Sign up! | Forgot password


Search:
Search body:
Forums (0)
Newest Problems
Random Problem
FAQ | About This Site
Site Statistics
New Comments (3)
Unsolved Problems
Top Rated Problems
This month's top
Most Commented On

Chatterbox:
Copyright © 2002 - 2017 by Animus Pactum Consulting. All rights reserved. Privacy Information