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
apologies that my indentions don't come through the HTML (but I don't want to type the non-breaking space character ;-)
#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
{
for (j=0; j
{
printf("%d\t",F(i,j,x));
}
printf("\n");
}
return 0;
}