Week 2: Exercises

1. Printing with Commas

Write a program that reads an integer which may be arbitrarily large, and writes the integer with embedded commas.

Input:

28470562348756298345

Output:

28,470,562,348,756,298,345

2. Roll of the Dice

Write a program that reads an integer N and simulates rolling N 6-sided dice until all dice have the value 1. The program should print the number of rolls that were required. (On average, what number will the program print for a given N?)

3. Number of Words

Write a method that counts the number of words in standard input. Here, a word is any contiguous sequence of non-whitespace characters.

4. Rotate a Matrix

Write a static method that takes N x N matrix of integers and rotates it 90 degrees to the right.

Input:

2 4 6 8
8 6 4 2
1 3 7 9
9 7 3 1

Output:

9 1 8 2
7 3 6 4
3 7 4 6
1 9 2 8

5. All Ints

Write a program that computes and prints the sum of every possible value of an int. Can you determine what value it will print even before you run it?

6. Counting Sundays

(Project Euler, problem 19)

January 1, 1900 was a Monday.

Write a program that determines how many Sundays fell on the first of the month during the 20th century (January 1, 1901 – December 31, 2000).

7. Integer Square Root

Write a function

  function intSqrt(n: integer): integer;

that finds the integer square root of n, i.e. the non-negative integer i such that i * i = n. If no such integer exists, return -1. Do not call any library functions. Your function must run in time O(log N) in the worst case.

8. Sorting Two Values

Write a method sort(int[] a) that sorts an array of integers which is guaranteed to contain at most two distinct values. How efficient is your method?

9. Largest Product in a Series

Solve Project Euler's problem 8, assuming that the input number is in a file called 'number'.

10. Largest Product in a Grid

Solve Project Euler's problem 11, assuming that the input number is in a file called 'numbers'.

11. Large Sum

Solve Project Euler's problem 13, assuming that the input numbers are in a file called 'numbers'.

12. Power Digit Sum

(Project Euler, problem 16)

Write a program that determines the sum of the digits of the number 21000.

13. Number Spiral Diagonals

Solve Project Euler's problem 28.