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

 Spirals (Posted on 2003-08-21)
Write a program (or explain how to do it) that will display a descending "spiral" of NxN numbers, using constant space (no arrays allowed). For example, here's what the spiral looks like for N=10:
```   99    98    97    96    95    94    93    92    91    90
64    63    62    61    60    59    58    57    56    89
65    36    35    34    33    32    31    30    55    88
66    37    16    15    14    13    12    29    54    87
67    38    17     4     3     2    11    28    53    86
68    39    18     5     0     1    10    27    52    85
69    40    19     6     7     8     9    26    51    84
70    41    20    21    22    23    24    25    50    83
71    42    43    44    45    46    47    48    49    82
72    73    74    75    76    77    78    79    80    81
```

 See The Solution Submitted by DJ Rating: 4.4167 (12 votes)

Comments: ( Back to comment list | You must be logged in to post comments.)
 re: FULL SOLUTION (in C) | Comment 2 of 10 |
(In reply to FULL SOLUTION (in C) by SilverKnight)

This is "take 2" since the HTML didn't like my "less than sign"... also... for those who don't know... this program will take a command line parameter as N=the size of the spiral.

#include "stdafx.h"
#include "stdlib.h"

int F(int i, int j, int x)
{
if (i == 0)
{
return(x*x-j-1);
}
if (i == (x-1) )
{
return( (x-2) * x + j - x + 2);
}
if (j == (x-1) )
{
return( (x-1)* x - i);
}
if (j == 0)
{
return( (x-2) * (x-2) + i - 1) ;
}
return (F(i-1, j-1, x-2));
}

int main(int argc, char* argv[])
{
int i,j;
int x = atoi(argv[1]);

for (i=0; i<x; i++)
{
for (j=0; j<x; j++)
{
printf("%d\t",F(i,j,x));
}
printf("\n");
}

return 0;
}

 Posted by Your buddy on 2003-08-21 15:55:56

 Search: Search body:
Forums (0)