Assignment title: Information


C or C++ Q Write and execute a program in the C language that solves the following problems. Submit source code and print executed answers:

(1) Generate a list of 10 random integer numbers between 1 and 100. generate a special random number called SUM between 100 and 200. The determine what subset of the 5 random numbers when added comes closest to SUM without exceeding it. A simple example with less than 6 numbers - 10,3,15,2,9 with SUM = 14 correct answer = is the subset 10,3 Notice you must try ALL subsets for this to be an ALGORITHM. No other algorithm exists. In what sense is this algorithm a 'search'.

(2) Create a 2 dimensional array (10 by 10) that represents a maze: fill the maze with asterisks and then make a 'random' path of blanks from the lower left (0,0) element to the upper right (9,9) element. Create a maze running program that prints out the correct path. Your program should move square by square - if it finds and asterisk blocking its path, it searches the next adjacent square, etc. Submit 10 separate trials proving your program discovers the correct path. Each path MUST be random!

(3) Write a program that outputs all numbers of n digits or less that meet the following constraint: let the number be X and let the number of digits of the number be called n with each digit being d1,d2,..,dn. The d1**n + d2**n + .. + dn**n = X. For example : 371 meets this constraint because 3**3 + 7**3 + 1**3 = 371 ! But 11 does NOT meet the constraint because 1**2 + 1**2 does not equal 11. Test your code for N = 30