Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: Spiraling integers

by salva (Abbot)
on Aug 28, 2005 at 14:24 UTC ( #487258=note: print w/replies, xml ) Need Help??

in reply to Spiraling integers

in prolog...
matrix(S, M) :- length(M, S), matrix1(M, S). matrix1([], _). matrix1([H|T], S) :- length(H, S), matrix1(T, S). next(A, B, A, B). next(1, 0, 0, 1). next(0, 1, -1, 0). next(-1, 0, 0, -1). next(0, -1, 1, 0). solve(N, M) :- N2 is N*N, numlist(1, N2, L), matrix(N, M), solve(L, -1, 0, 1, 0, M). solve([], _, _, _, _, _). solve([Ix|T], X, Y, Dx, Dy, M) :- next(Dx, Dy, Dx1, Dy1), Y1 is Y+Dy1, X1 is X+Dx1, nth0(Y1, M, Row), nth0(X1, Row, Ix), !, solve(T, X1, Y1, Dx1, Dy1, M). :- solve(5, M), writeln(M).

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://487258]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (7)
As of 2019-02-17 21:55 GMT
Find Nodes?
    Voting Booth?
    I use postfix dereferencing ...

    Results (98 votes). Check out past polls.