Files
ioccc/1990/baruch/README.md
T
Cody Boone Ferguson cb8d8924a7 Improve links to bugs.html in README.md files
In other words rather than have the link name in the form of:

    1984 decot bugs

it is now:

    1984/decot in bugs.html

so that it matches how the entry itself looks (as in how it's
identified) and to say where (what file) it is (in). The reason it says
'in bugs.html' rather than 'bugs' (saying that the entry has bugs) is
because not all are bugs and it's saying where to see it anyway. But
some are features, others are missing links or files or other things
like that and to keep the same form it now says 'in bugs.html'.

This was done with my sgit(1) tool like:

    sgit -e 's,\([0-9][0-9][0-9][0-9]\) \([-a-z\.0-9]*\) bugs,\1/\2 in bugs.html,g' '*/*md'

The link to bugs.html itself has the path '../../bugs.html'. This is
important as it's meant to be rendered in the browser. At first this was
not remembered and I did something like:

    sgit -e 's,\[\([0-9][0-9][0-9][0-9]\) \([-a-z\.0-9]*\) bugs\](../../bugs.html,\[\1/\2 in bugs.html\](%%REPO_URL%%/bugs.html,g' '*/*md'

but this was changed to the simpler one due to the problem described
above. It's worth putting this note here as a reminder, though, so I
have included it here.
2024-05-04 09:21:09 -07:00

2.9 KiB

To build:

    make all

There is an alternate version for those using Turbo-C or MSC. See alternate code below for details.

Bugs and (Mis)features:

The current status of this entry is:

    STATUS: INABIAF - please **DO NOT** fix

For more detailed information see 1990/baruch in bugs.html.

To use:

    echo 4 | ./baruch
    echo 7 | ./baruch

Try:

    ./try.sh

Alternate code:

This alternate code is for the very few users here who will need it. Nonetheless if you're using Turbo-C or MSC, the code is available, based on the authors' remarks except that the " #Q" string was not changed as that showed worse looking output instead of improved output though admittedly we have no way to test the compilers in question. YMMV.

Alternate build:

    make alt

Alternate use:

Use baruch.alt as you would baruch.

Judges' remarks:

This program reads an integer between 4 and 99 from the stdin.

NOTE: The original program did not have a newline at the end of the file. We added a final newline to the file to make unpacking easy.

Authors' remarks:

The goal of this work was to write a program that solves the classic n-queens problem, with a board size of up to 99x99, while keeping the program as short as possible.

The program finds all possibilities to place N chess queens on an NxN chessboard so that no queen is in range of any other queen (not in the same column row or diagonal). For each solution the chess board and the place of the queens is printed to stdout.

This program is about as simple and as readable as possible. To make things even more simple we used a very limited subset of C:

  • No pre-processor statements
  • Only one, harmless, for statement
  • No ifs
  • No breaks
  • No cases
  • No functions outside the standard C library
  • No gotos
  • No structures

In short, it contains no C language that might confuse the innocent reader. :-)

This program demonstrates the claim that in C, any program can be written using a single 'for' statement, as long as it is long enough.

For PC users:

In order to compile the program under Turbo-C or MSC, int should be inserted at the beginning of the program. For better looking results it is recommended to replace the " #Q" string with " \261\2".