logo Practice-It logo


Language/Type: Java recursion recursive programming
Author: Whitaker Brand

Write a method printTwos that accepts an integer parameter n and that prints an expression composed of a single odd number multiplied by twos that is equal to n. The twos should surround the odd number with an equal number of twos on either side if possible. Several calls and their output are shown below.

Call Output
printTwos(80); 2 * 2 * 5 * 2 * 2
printTwos(68); 2 * 17 * 2
printTwos(96); 2 * 2 * 2 * 3 * 2 * 2
printTwos(32); 2 * 2 * 2 * 1 * 2 * 2
printTwos(1); 1
printTwos(2); 2 * 1

If the expression has an odd number of twos, then the "extra" two should appear at the front of the expression, as shown in the output from passing 96 and 32. If the number is odd to begin with, it should simply be printed. It is possible that the odd number to print will be 1, as shown in the output from passing 32, 1, and 2 above.

Your method should throw an IllegalArgumentException if passed a value less than 1. Note that the output does not advance to the next line.

Type your solution here:

This is a method problem. Write a Java method as described. Do not write a complete program or class; just the method(s) above.

You must log in before you can solve this problem.

Log In

If you do not understand how to solve a problem or why your solution doesn't work, please contact your TA or instructor.
If something seems wrong with the site (errors, slow performance, incorrect problems/tests, etc.), please

Is there a problem? Contact a site administrator.