FLORIDA HIGH SCHOOLS COMPUTING COMPETITION '86 


1.1  Write a program that will first clear the screen and then 
center on the screen the sentence:  THIS IS THE EASIEST PROGRAM! 


1.2  Write a program that will accept two integers between -170 
and 170, inclusive, and will print out the sum, difference (second 
from first), and product, each clearly labeled.  Note: one or two 
spaces may separate the equal sign from each number output.  
Examples:

     INPUT: Enter two numbers: 6, 8

    OUTPUT: SUM = 14 
            DIFFERENCE = -2 
            PRODUCT = 48


1.3  Consider the series 

           1 + (1/2)^2 + (1/3)^3 + (1/4)^4 + ... 

where there are infinitely many terms.     Write a program to 
compute the sum of the series until the difference between the 
present sum and the sum obtained by including just one more term 
is less than a test value, E, given by the operator.  Output must 
be printed in the form #.######.  Example:

     INPUT: Enter test value E: 0.01

    OUTPUT: 1.287037



1.4  Write a program for Ben's Towing Service for the purpose of 
writing checks.  The payee's first name, middle name or initial, 
last name, and amount will be entered separately by the operator. 
The program should then print a check surrounded by a border of 
asterisks (39 x 11) with Ben's business address at the top left, 
as shown below.  The middle name must be abbreviated to an initial 
whether the operator enters the full middle name or just an 
initial.  The middle initial must have a period immediately 
following.  The first and last names combined will not exceed 10 
letters.  The amount entered must appear immediately after a 
dollar sign.  Example:

     INPUT: Enter first name: NORM
            Enter middle name: N
            Enter last name: SAND
            Enter amount: 1234.56

    OUTPUT: (appears on next page)


    OUTPUT: *************************************** 
            *                                     *
            * BEN'S TOWING SERVICE                * 
            * 4563 WRECKER AVENUE                 * 
            * WAVERLY, ARKANSAS 45632             * 
            *                                     * 
            *  PAY TO THE ORDER OF NORM N. SAND   * 
            *                                     * 
            *  THE SUM OF $1,234.56               * 
            *                                     * 
            *************************************** 


1.5  A jail has 100 cells.  In celebration of the warden's 
birthday, some of the prisoners will be released today.  First the 
warden opens all the cell doors.  Then starting with the first 
door, he closes every other door.  Then, starting with the first 
door, he goes to every third door, closing the open doors and 
opening the closed ones; That is, doors 1, 4, 7, etc.  He repeats 
this process of opening closed doors and closing open doors for 
doors 1,5,9, etc.; i.e. for every 4th door starting with the first 
door.  He continues doing this for every 5th door, every 6th door, 
etc., always starting with the first door, until he has done this 
for every 100th door.  Prisoners whose door is open when he is 
done are permitted to leave.  Write a program that determines who 
can leave, and display each cell number in the format shown below:

    OUTPUT: CELL 2
            CELL 5
            CELL ###
               :
               :
            CELL ###



1.6  Jill is thinking about opening a retirement account.  Write a 
program to help her figure how much she can accumulate.  The 
operator should be asked to input the monthly investment, the end 
of the year lump sum investment and the rate of interest.  Assume 
that the monthly investment is deposited on the first of each 
month and that interest is compounded at the end of each month.  
Also assume that the yearly investment is deposited at the end of 
each year after the month's interest has been added.  Calculate 
the total amount (rounded to the nearest penny) in the account at 
the end of twenty years.  Example:

     INPUT: Enter Monthly investment: 100
            Enter end of year deposit: 600
            Enter annual rate of interest: 12

    OUTPUT: AMOUNT AT END OF YEAR 20 IS $146715.74



1.7  Write a program which will teach your computer to print with 
a Southern accent.  For purposes of this program, this means that 
for any sentence which is input (without a period), the last "g" 
of any word ending with ing or with ings must be dropped.  
Example:

     INPUT: Enter sentence: THOSE EARRINGS ARE TO MY LIKING
    OUTPUT: THOSE EARRINS ARE TO MY LIKIN

1.8  Assume that rabbits reproduce at the rate of 20% per month 
until the end of the month that overpopulation occurs, at which 
time they begin dying at the rate of 15% per month.  Rabbits 
continue to die at this rate until their population is reduced by 
one third of the amount in which over population occurs, at which 
time they begin reproducing again.  Write a program to simulate 
the rabbit population for 23 months, displaying each amount 
rounded to the nearest whole number.  The program will accept as 
input the initial population and the number at which 
overpopulation occurs.  Example:

     INPUT: Enter initial population: 1826
            Enter point of over population: 2600

    OUTPUT: POPULATION FOR MONTH 1 IS 2191
            POPULATION FOR MONTH 2 IS 2629
            POPULATION FOR MONTH 3 IS 2235
            POPULATION FOR MONTH 4 IS 1900
            POPULATION FOR MONTH 5 IS 1615
            POPULATION FOR MONTH 6 IS 1938
            POPULATION FOR MONTH 7 IS 2325
            POPULATION FOR MONTH 8 IS 2790
            POPULATION FOR MONTH 9 IS 2372
            POPULATION FOR MONTH 10 IS 2016
            POPULATION FOR MONTH 11 IS 1714
            POPULATION FOR MONTH 12 IS 2056
            POPULATION FOR MONTH 13 IS 2468
            POPULATION FOR MONTH 14 IS 2961
            POPULATION FOR MONTH 15 IS 2517
            POPULATION FOR MONTH 16 IS 2139
            POPULATION FOR MONTH 17 IS 1819
            POPULATION FOR MONTH 18 IS 2182
            POPULATION FOR MONTH 19 IS 2619
            POPULATION FOR MONTH 20 IS 2226
            POPULATION FOR MONTH 21 IS 1892
            POPULATION FOR MONTH 22 IS 1608
            POPULATION FOR MONTH 23 IS 1930


1.9  The inhabitants of Eeland write normally with the exception 
of the fact that the letter E is always doubled when it is used.  
Write a program which will convert a normally written English 
sentence into an Eeland sentence.  Example:

     INPUT: Enter sentence: SHE WORKS LIKE A BEE.
    OUTPUT: SHEE WORKS LIKEE A BEE.


1.10  Write a program which will accept a list of 12 whole numbers 
and a list of 11 whole numbers by entering one number at a time.  
The program will then print out the common elements of the two 
lists without repetition, with each number separated by 2 spaces 
and in the order that they appear in the first list.  Example:


     INPUT: Enter 1 of 12: 5
            Enter 2 of 12: 6
            Enter 3 of 12: 7
            Enter 4 of 12: 9
            Enter 5 of 12: 8
            Enter 6 of 12: 9
            Enter 7 of 12: 0
            Enter 8 of 12: 23
            Enter 9 of 12: 456
            Enter 10 of 12: 789
            Enter 11 of 12: 1
            Enter 12 of 12: 12

            Enter 1 of 11: 1
            Enter 2 of 11: 23
            Enter 3 of 11: 32
            Enter 4 of 11: 23
            Enter 5 of 11: 8
            Enter 6 of 11: 99
            Enter 7 of 11: 9
            Enter 8 of 11: 10
            Enter 9 of 11: 12
            Enter 10 of 11: 8
            Enter 11 of 11: 1

    OUTPUT: 9  8  23  1  12




2.1  Write a program that takes a sentence and right-justifies it 
on a line that has 65 columns.  When the sentence is 
right-justified, it begins in column 1 and ends in column 65.  The 
spacing between words should be approximately uniform.  Example:
 
     INPUT: Enter sentence: THIS IS REALLY A SHORT SENTENCE.

    OUTPUT: (The sentence is to be right-justified on a 65 column
            line.  Spacing between words is approximately
            uniform.)
THIS        IS        REALLY        A       SHORT       SENTENCE.


2.2  Write a program that produces the following repeating 
pattern:

XXX--XXX--XXX--XXX-- 
---XX---XX---XX---XX 
XXX--XXX--XXX--XXX-- 
---XX---XX---XX---XX 

Note that on each line the X and - pattern is repeated four times. 
Also, the second line has -'s where the first line has X's and it 
has X's where the first line has -'s.  The third and fourth lines 
repeat the pattern in the first two lines.  Write the program so 
that the operator puts in the total number of X's and -'s used in 
the basic sequence, the number of X's used in the beginning basic 
sequence, and the number of rows to be printed (less than 20).  
Example:

     INPUT: Enter total number of X's and -'s: 5
            Enter number of X's: 3
            Enter number of rows: 5

    OUTPUT: XXX--XXX--XXX--XXX-- 
            ---XX---XX---XX---XX 
            XXX--XXX--XXX--XXX-- 
            ---XX---XX---XX---XX 
            XXX--XXX--XXX--XXX-- 



2.3  You just got a job with a secret agency as a message 
coder/decoder.  Write a program which gives the operator the 
choice of:  1) coding a message from English into a secret code; 
or 2) decoding a message from secret code into English. The master 
translation string is "ZXCVBNMASDFGHJKLQWERTYUIOP " for each of 
the corresponding letters of the alphabet.  Notice that the space 
is the last character of the translation string which always 
translated to a space.  Only these characters will be used.  The 
program is to display a menu of three choices as shown below and 
will continue to prompt for input until a '3' is entered.  
Example:

    OUTPUT: 1) ENCODE
            2) DECODE
            3) END
     INPUT: Choose: 1
            Enter message: HERE IS A MESSAGE
    OUTPUT: ABWB SE Z HBEEZMB

            1) ENCODE
            2) DECODE
            3) END
     INPUT: Choose: 2
            Enter message: ABWB SE Z HBEEZMB
    OUTPUT: HERE IS A MESSAGE

            1) ENCODE
            2) DECODE
            3) END
     INPUT: Choose: 3
    OUTPUT: (program terminates)

2.4  The mode of a set of numbers is the most frequently used 
number.  Write a program in which the operator is asked to input 
15 numbers.  The program then finds and prints the unique mode if 
only one mode; otherwise have the computer print the message NO 
UNIQUE MODE.  Examples:

     INPUT: Enter number 1: 7       INPUT: Enter number 1: 1
            Enter number 2: 1              Enter number 2: 2
            Enter number 3: 4              Enter number 3: 3
            Enter number 4: 9              Enter number 4: 4
            Enter number 5: 5              Enter number 5: 5
            Enter number 6: 4              Enter number 6: 6
            Enter number 7: 5              Enter number 7: 7
            Enter number 8: 7              Enter number 8: 8
            Enter number 9: 1              Enter number 9: 5
            Enter number 10: 5             Enter number 10: 1
            Enter number 11: 22            Enter number 11: 2
            Enter number 12: 33            Enter number 12: 3
            Enter number 13: 44            Enter number 13: 4
            Enter number 14: 55            Enter number 14: 5
            Enter number 15: 4             Enter number 15: 6

     OUTPUT: NO UNIQUE MODE        OUTPUT: MODE IS 5


2.5  A bank needs a program to handle savings accounts.  The 
original balance in an account will be entered at the terminal.  
The annual interest rate on deposits will be 7%.  The rest of the 
program will be menu driven.  Choices will be: 1. MAKE A DEPOSIT, 
2. MAKE A WITHDRAWAL, 3. CREDIT INTEREST, or 4. END the program.  
The amount of a deposit or a withdrawal will be entered at the 
terminal.  After each transaction, the program must print the 
balance before the transaction, the type of transaction (deposit, 
withdrawal, or interest) with the amount of the transaction, and 
the new balance after the transaction (always above $1500).  When 
crediting interest, the current balance is the amount on which to 
figure the month's interest.  When the "end" choice is selected, 
the final balance must be printed before terminating. Example:

     INPUT: Enter original balance: 2345.15
    OUTPUT: 1. MAKE A DEPOSIT
            2. MAKE A WITHDRAWAL
            3. CREDIT INTEREST
            4. END
     INPUT: Enter option: 1

            Enter amount to deposit: 100
    OUTPUT: BALANCE BEFORE TRANSACTION $2,345.15
            MAKE A DEPOSIT
            NEW BALANCE $2,445.15

            1. MAKE A DEPOSIT
            2. MAKE A WITHDRAWAL
            3. CREDIT INTEREST
            4. END
     INPUT: Enter option: 2

            Enter amount to withdraw: 50
    OUTPUT: BALANCE BEFORE TRANSACTION $2,445.15
            MAKE A WITHDRAWAL
            NEW BALANCE $2,395.15

            1. MAKE A DEPOSIT
            2. MAKE A WITHDRAWAL
            3. CREDIT INTEREST
            4. END
     INPUT: Enter option: 3

    OUTPUT: BALANCE BEFORE TRANSACTION $2,395.15
            CREDIT INTEREST OF $ 13.97
            NEW BALANCE $2,409.12

            1. MAKE A DEPOSIT
            2. MAKE A WITHDRAWAL
            3. CREDIT INTEREST
            4. END
     INPUT: Enter option: 4

    OUTPUT: FINAL BALANCE $3,409.12


2.6  Write a program in which the operator may input any two 
positive integers (with at most 38 digits each), and the program 
then prints the sum of these two numbers.  Example:

     INPUT: Enter first number:  54387698325431256754
            Enter second number: 76589787321212546786

    OUTPUT: SUM IS 130977485646643803540


2.7  Write a menu driven program which can perform decimal/metric 
conversions in each direction with the choices below.  Each of the 
12 choices should allow an amount to be entered and then print the 
equivalent amount in the other system of measure.  Each amount 
displayed must be in the form ###.###.  A 13th choice will end the 
program.  The menu must be presented in two columns with six 
choices in the first column and the other six in the second column 
(with the two-digit numbers beginning in column 27) as shown 
below.  Note:
                  1 inch   = 2.54 centimeters 
                  1 foot   = 0.3048 meters    
                  1 mile   = 1.6093 kilometers
                  1 ounce  = 28.35 grams      
                  1 pound  = 0.4536 kilograms 
                  1 gallon = 3.7854 liters    
Example:

    OUTPUT:  1 CENTIMETERS TO INCHES   7 GRAMS TO OUNCES
             2 INCHES TO CENTIMETERS   8 OUNCES TO GRAMS
             3 METERS TO FEET          9 KILOGRAMS TO POUNDS
             4 FEET TO METERS         10 POUNDS TO KILOGRAMS
             5 KILOMETERS TO MILES    11 LITERS TO GALLONS
             6 MILES TO KILOMETERS    12 GALLONS TO LITERS
                                      13 END
     INPUT: Enter option: 2
             Enter number of INCHES: 100

    OUTPUT: THIS IS EQUIVALENT TO 254.000 CENTIMETERS

    OUTPUT:  1 CENTIMETERS TO INCHES   7 GRAMS TO OUNCES
             2 INCHES TO CENTIMETERS   8 OUNCES TO GRAMS
             3 METERS TO FEET          9 KILOGRAMS TO POUNDS
             4 FEET TO METERS         10 POUNDS TO KILOGRAMS
             5 KILOMETERS TO MILES    11 LITERS TO GALLONS
             6 MILES TO KILOMETERS    12 GALLONS TO LITERS
                                      13 END
     INPUT: Enter option: 10
            Enter number of POUNDS: 10

    OUTPUT: THIS IS EQUIVALENT TO   4.536 KILOGRAMS
    OUTPUT: (menu displays again)
     INPUT: Enter option: 13

    OUTPUT: (program terminates)


2.8  Write a program to generate a mortgage amortization where the 
user inputs the principal, the interest rate, the term in years, 
and the number of the month during which the first payment is 
made. Have the program print the amount of interest paid for each 
month and the outstanding principal for that month.  At the end of 
each year the program is to print the total amount of interest 
paid during that year and pause until a key has been pressed so 
that all the output may be viewed on the screen before proceeding 
to the next set of amounts.  At the end of the loan, have the 
program print the total interest paid and the calculated monthly 
payment.  Each amount must be rounded to the nearest penny and 
displayed in the form ###.## for monthly interest and #####.## for 
all others.  Note: The formula for monthly payment is:

            PA = (R*(1+R)^(Y*12))/((1+R)^(12*Y)-1)*P

                  where R is decimal interest, 
                        Y is term in years,   
                    and P is principal.       

Note: The program will not compute accurate amounts if the power 
symbol (^) is used.  The final principal must be -0.00 or 0.00.

A partial listing of a sample output is given below:  

     INPUT: Enter principal: 10000
            Enter % rate of interest: 10
            Enter term in years: 4
            Enter # of month in year for first payment: 4
    OUTPUT: INTEREST         PRINCIPAL
            $ 83.33          $ 9829.71
            $ 81.91          $ 9658.00
            $ 80.48          $ 9484.85
            $ 79.04          $ 9310.27
            $ 77.59          $ 9134.23
            $ 76.12          $ 8956.72
            $ 74.64          $ 8777.73
            $ 73.15          $ 8597.26
            $ 71.64          $ 8415.27

            YEAR'S INTEREST  $  697.91

            $ 70.13          $ 8231.78  
                       : 
                       : 
            YEAR'S INTEREST  $  229.58

            $  6.24          $  500.98
            $  4.17          $  251.53
            $  2.10          $   -0.00 
 
            YEAR'S INTEREST  $   12.51  
            TOTAL INTEREST   $ 2174.04  
            MONTHLY PAYMENT  $  253.63  


2.9  The value of sine x is given by the series

     x - x^3/3! + x^5/5! - x^7/7! + x^9/9! - x^11/11! + ...

where x is measured in radians and the series has an infinite 
number of terms.  Write a program that calculates the sine of N 
degrees, once N is entered as a number greater than 0 and less 
than 360.  Perform the calculation so that x is added to -x^3/3! 
and the sum is added to x^5/5! and so on.  The last term to be 
added will be -x^11/11!.  Have the computer print the sum followed 
by the actual value of sine of N degrees as calculated by the 
computer's internal sine function.  Each value is to be displayed 
in the form #.#######.

Note: Using the power sign (^) could give an inaccurate result.  
Note: When N is greater than 180 use the reference angle of
      360 - N for accurate results, but be careful with the sign.
Note: PI is approximately equivalent to 3.1415926535.

Examples:

      INPUT: Enter N degrees: 125

     OUTPUT: PARTIAL SUM = 0.8191481
             ACTUAL SINE = 0.8191520


      INPUT: Enter N degrees: 270

     OUTPUT: PARTIAL SUM = -0.9999999
             ACTUAL SINE = -1.0000000



2.10  The seven Roman numerals and their corresponding values in 
the Arabic system are M = 1000, D = 500, C = 100, L = 50, X = 10, 
V = 5, and I = 1.  The Roman system is generally the sum of the 
values of the digits as long as the digits decrease to the right. 
 That is, MDLXXVII would be 1577.Whenever a digit of smaller value 
appears to the left, it is subtracted from the digit to its 
immediate right.  Only C, X, and I may subtract.  C will subtract 
from M or D, X from C or L, and I from X or V.  The number MCDXLIX 
is 1449. Write a program to accept as input a Roman numeral and 
then translate the Roman numeral to an Arabic numeral.  Examples:

     INPUT: Enter Roman Numeral: MMCMXCIX
    OUTPUT: ARABIC = 2999

     INPUT: Enter Roman Numeral: CCCXXXVIII
    OUTPUT: ARABIC = 338



3.1  Write a program that produces monthly calendars for the year 
1986, one month at a time, starting with January.  For each 
calendar the name of the month must be approximately centered 
above the calendar days.  An abbreviation of the names of each day 
(starting with Sunday) must be on the top of each column of day 
numbers.  Only the month of January needs the heading '1986'.  
After one monthly calendar is displayed, allow the user to press 
any key to clear the screen and to display the next month.  Each 
month should have a neat form similar to the calendar of January 
as shown below.

Hint: remember the rhyme, 30 days have September, April, June, and 
November.  All the rest have 31 except February which has 28 and 
on a leap year 29.  Partial listing of example:

                          1986

                        JANUARY

               S   M   T   W   T   F   S
                           1   2   3   4
               5   6   7   8   9  10  11
              12  13  14  15  16  17  18
              19  20  21  22  23  24  25
              26  27  28  29  30  31

                        FEBRUARY

               S   M   T   W   T   F   S
                                       1
               2   3   4   5   6   7   8
               9  10  11  12  13  14  15
              16  17  18  19  20  21  22
              23  24  25  26  27  28


3.2  A fundamental theorem of mathematics says that every 5th 
degree polynomial has at least one root (a value of the variable 
at which the polynomial equals 0). 

Write a program which will find a root for any 5th degree 
polynomial in the variable x (whose root lies between -10 and 10), 
once given the values of the coefficients of the polynomial:

             Ax^5 + Bx^4 + Cx^3 + Dx^2 + Ex + F = 0

The root value x must be displayed in the form #.##### with the 
5th digit on the right of the decimal being rounded.  Example:

     INPUT: Enter coefficients A,B,C,D,E,F: 1, -5, 8, 5, -4, 3
    OUTPUT: ROOT IS -0.93629



3.3  Write a program which changes a base A numeral into a base B 
numeral, where A and B are any integers between 2 and 36, 
inclusive.  Examples:

     INPUT: Enter base A: 12
            Enter base B: 11
            Enter original number: A14B

    OUTPUT: A14B BASE 12 EQUALS 12154 BASE 11


     INPUT: Enter base A: 36
            Enter base B: 27
            Enter original number: 1Y

    OUTPUT: 1Y BASE 36 EQUALS 2G BASE 27


3.4  A number of DATA statements contain customer accounts.  For 
each customer, there are four fields: social security number in 
the form XXXXXXXXX, name, address, and account balance.  Store the 
customer data into associated arrays.  Additional input will come 
from the terminal and will consist of three items: social security 
number, C for charge or P for payment, and amount of transaction. 
 The social security number is used to determine whose balance is 
affected; the balance is then updated; and the new balance is 
printed.  The process is repeated until the social security number 
000000000 is entered.  After that, all data is to be printed in a 
report showing social security number, name, address, and the 
final balance for each customer.  The customer listing must be 
arranged in decreasing order according to the account balance.  
Balances are displayed in the form ####.##. Use the DATA 
statements given below. 
DATA 234567890,JOHN SMITH,
     "1234 ANYWHERE LANE, EXIST, KANSAS 66754",345.78 
DATA 564783219,GAIL HUSTON,
     "543 SOUTH THIRD, BIG TOWN, TEXAS 88642",2365.89 
DATA 873421765,TIM JONES,
     "2387 PALM PLACE, NOME, ALASKA 77643",6754.76 
DATA 543876543,JILL RUPERTS,
     "4536 123RD STREET, TINY TOWN, MAINE 76765",45.18
DATA 345212342,AL BROWN,
     "PO BOX 234, TINSEL TOWN, CALIFORNIA 77654",3456.09 
DATA 565656565,KERMIT TEU,
     "1234 LOST LANE, WIMPLE, WISCONSIN 66543",78.36 

Example:

     INPUT: Enter SSN: 564783219
            Enter C for charge or P for payment: C
            Enter amount of transaction: 10

    OUTPUT: NEW BALANCE IS $2355.89
(Input/Output continued on next page)


(Input/Output continued)

     INPUT: Enter SSN: 565656565
            Enter C for charge or P for payment: P
            Enter amount of transaction: 10

    OUTPUT: NEW BALANCE IS $  88.36

     INPUT: Enter SSN: 000000000

    OUTPUT: SSN        NAME          ADDRESS             BALANCE

            873421765  TIM JONES     2387 PALM PLACE     $6754.76
                                     NOME
                                     ALASKA 77643      
            345212342  AL BROWN      PO BOX 234          $3456.09
                                     TINSEL TOWN
                                     CALIFORNIA 77654
            564783219  GAIL HUSTON   543 SOUTH THIRD     $2355.89
                                     BIG TOWN
                                     TEXAS 88642   
            234567890  JOHN SMITH    1234 ANYWHERE LANE  $ 345.78
                                     EXIST
                                     KANSAS 66754  
            565656565  KERMIT TEU    1234 LOST LANE      $  88.36
                                     WIMPLE
                                     WISCONSIN 66543  
            543876543  JILL RUPERTS  4536 123RD STREET   $  45.18
                                     TINY TOWN
                                     MAINE 76765



3.5  Write a program to print out the product of any two decimal 
numbers, each containing at most 20 digits and a decimal point.  
Example:

     INPUT: Enter first number: 1.123456789
            Enter second number: 0.11239

    OUTPUT: PRODUCT = 0.12626530851571


     INPUT: Enter first number: 123456789.123456789
            Enter second number: 1000000000.0000000001

    OUTPUT: PRODUCT = 123456789123456789.123456789123456789



3.6  A palindrome is a word, verse, or number that reads the same 
backwards or forwards.  The number 12321 is a palindrome.  Here is 
a method of forming palindromic numbers which is almost always 
successful:  Begin with any positive integer.  If it is not a 
palindrome, reverse its digits and add the two numbers.  If the 
sum is not a palindrome, treat it as the original number and 
continue until a palindrome is generated.  Write a program to find 
palindromes using this method; However, allow a limit of at most 
23 additions.  For example, 196 will not produce a palindrome, so 
a limit is necessary.  If a number will not produce a palindrome 
after 23 additions, then print out the message: CANNOT GENERATE A 
PALINDROME.  Note: the generated palindrome could be up to 15 
digits long.  In the example below, 5405 can generate a palindrome 
because 5405 + 5045 = 10450 and 10450 + 5401 = 15851. 

Example:

     INPUT: Enter number: 5405
    OUTPUT: 15851 IS A PALINDROME 

     INPUT: Enter number: 196
    OUTPUT: CANNOT GENERATE A PALINDROME



3.7  Write a program to solve a system of N equations with N 
unknowns.  The program will first accept a value for N between 2 
and 4 inclusive.  For each equation the program should accept the 
values for the N coefficients followed by the constant.  Each 
given system of equations will have one unique solution whose 
values will be integers.  A possible algorithm to be used to solve 
an NxN system of equations is shown to the right of the example 
input/output.  Examples: 
 
INPUT: Enter N: 3           |  2x + 4y + 6z = 4    (Divide by 2) 
Enter coefficients for row1 |  2x +  y +  z = 3 
Co1: 2                      |  -x + 2y +  z = 2 
Co2: 4                      | 
Co3: 6                      |  1  2   3   2 
Enter constant: 4           |  2  1   1   3   (Subtract 2*Row1) 
Enter coefficients for row2 | -1  2   1   2 
Co1: 2                      | 
Co2: 1                      |  1  2   3   2 
Co3: 1                      |  0 -3  -5  -1 
Enter constant: 3           | -1  2   1   2   (Subtract -1*Row1) 
Enter coefficients for row3 | 
Co1: -1                     |  1  2   3   2 
Co2: 2                      |  0 -3  -5  -1   (Divide by -3) 
Co3: 1                      |  0  4   4   4 
Enter constant: 2           | 
                            |  1  2   3   2 
OUTPUT: (1, 2, -1)          |  0  1  5/3 1/3 
                            |  0  4   4   4   (Subtract 4*Row2) 
                            | 
                            |  1  2   3   2 
INPUT: Enter N: 2           |  0  1  5/3 1/3 
Enter coefficients for row1 |  0  0 -8/3 8/3  (Divide by -8/3) 
Co1: 1                      | 
Co2: 1                      |  1  2   3   2 
Enter constant: 1           |  0  1  5/3 1/3  (Subtract 5/3*Row3) 
Enter coefficients for row2 |  0  0   1  -1 
Co1: 2                      | 
Co2: 3                      |  1  2   3   2   (Subtract 3*Row3) 
Enter constant: 6           |  0  1   0   2 
                            |  0  0   1  -1 
OUTPUT: (-3, 4)             | 
                            |  1  2   0   5   (Subtract 2*Row2) 
                            |  0  1   0   2 
                            |  0  0   1  -1 
                            | 
                            |  1  0   0   1 
                            |  0  1   0   2 
                            |  0  0   1  -1 



3.8  Write an EFFICIENT program to accept as input a word with L 
distinct letters (L is less than 8) and a positive integer K.  
Your program is to print out the Kth, 2*Kth, and 3*Kth elements of 
the alphabetized list of all the permutations of the word.  Each 
permutation is to be separated by two spaces.  For example, if the 
word CAT is entered with K=2 then the computer would form the list 
ACT, ATC, CAT, CTA, TAC, TCA, and output would be: ATC  CTA  TCA. 
 NOTE: No team completed this program last year.  Can anyone do it 
this year! 

Example:

     INPUT: Enter word: CAT
    OUTPUT: ATC  CTA  TCA


3.9  Write an EFFICIENT program to solve the following cryptorithm 
puzzle where each unique letter represents a unique digit: 

                         ABB - CB = DEF 

CB is a 2-digit number and is subtracted from the 3-digit number 
ABB to obtain the 3-digit result DEF.  Have the program print 
every unique solution, with each one numbered, and the total 
number of solutions printed at the end.  The solutions do not have 
to appear in any particular order, but they must appear in the 
format below.  A partial listing of an example: 

    OUTPUT: 411 - 21 = 390  NUMBER 1
            511 - 21 = 490  NUMBER 2
            611 - 21 = 590  NUMBER 3
            711 - 21 = 690  NUMBER 4
            :
            :
            :
            477 - 97 = 380  NUMBER ###
            577 - 97 = 480  NUMBER ###
            677 - 97 = 580  NUMBER ###

            TOTAL NUMBER OF SOLUTIONS = ###


3.10  Write a program that will find all positive two digit 
integers that can exist as the sum of the digits 0-9 in which each 
of the digits are used exactly once.  Any two of the digits may be 
combined to form a 2-digit integer to be added with the other 
digits.  Output must include every qualified number in ascending 
order followed by ONE OF THE SUM PROCESSES that qualifies the 
number.  Order of the addends does not matter.  A partial example:

    OUTPUT: 45 = 0 + 1 + 2 + 3 + 4 + 5 + 7 + 8 + 9
            :
            72 = 10 + 23 + 4 + 5 + 6 + 7 + 8 + 9
            :