Description
Section Readings: 1.1 (Recursion)
Problem 1. (Sum of Integers) Implement the static methods sumIter() and sumRec() in SumOfInts that take an integer argument n and return the sum S(n) = 1 + 2 + 3 + + n, computed iteratively (using a loop) and recursively. The recurrence relation for the latter implementation is

S(n) =
^{(}n + S(n 1) if n > 1:
1
if n = 1;

java S um Of In ts 100 5050 5050
Problem 2. (Exponentiation) Implement the static method power() in Power that takes two integer arguments a and b and returns the value of a^{b}, computed recursively using the recurrence relation

a^{b} =
^{8}_{aa}b
^{1} if b is odd;
>
1
if b = 0;
2
b=2
>
^{<}(a )if b is even:
:

java Power 3 5 243
Problem 3. (Bit Counts) Implement the static methods zeros() and ones() in Bits that takes a bit string (ie, a string of zeros and ones) s as argument and returns the number of zeros and ones in s, each computed recursively. Hint: First devise an appropriate recurrence relation for the problem.

java Bits 1 0 1 0 0 1 0 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 1 zeros = 11 , ones = 14 , total = 25
Problem 4. (String Reversal) Implement the static method reverse() in Reverse that takes a string s as argument and returns the reverse of the string, constructed recursively. Hint: First devise an appropriate recurrence relation for the problem.

java Reverse ” a man a plan a canal panama ” amanap lanac a nalp a nam a
Files to Submit:

SumOfInts.java

Power.java

Bits.java

Reverse.java
1 of 1