Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Spiral Numbers

Name: Anonymous 2009-05-01 20:05

Hello /prog/, I have a challenge for you.

It's called spiral numbers.  Being the expert programmers you are you've probably already have heard of it, but if not it goes a little something like this:

Given two positive integers a and b, output on the screen a rectangle with width = b numbers and height = a rows, containing the numbers from 1 to a*b in a spiraling fashion, as shown below.  For a = 4 and b = 3, the output is:

    1    2    3
    10    11    4
    9    12    5
    8    7    6

The columns must be properly n+1 positions, where n is the number of digits in the decimal representation of a *b.

Write a program that prompts for a and b and then displays the appropriate rectangle of numbers.

Example:
    If a = 3 and b = 4, the above rectangle should be

    1    2    3    4
    10    11    12    5
    9    8    7    6


Here's some more examples from my own implementation written in snake tongue.



Have fun!
H:\Documents\Python\Program of the week>"april15 Spiral.py"
Width:8
Height:12
1       2       3       4       5       6       7       8
36      37      38      39      40      41      42      9
35      64      65      66      67      68      43      10
34      63      84      85      86      69      44      11
33      62      83      96      87      70      45      12
32      61      82      95      88      71      46      13
31      60      81      94      89      72      47      14
30      59      80      93      90      73      48      15
29      58      79      92      91      74      49      16
28      57      78      77      76      75      50      17
27      56      55      54      53      52      51      18
26      25      24      23      22      21      20      19

Name: Anonymous 2009-05-01 20:24

>>2
Yes, this problem is clearly recursive in nature. Print out the first B integers, shave off that row, rotate the entire table 90 degrees, and recurse from the current index.
The restriction on not being able to use an array makes this problem more interesting, as any sort of preprocessing is now out of the question. Regardless, there shouldn't be any problem solving this using only two indices. I'll begin working on a solution right away.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List