countToBy

Language/Type: Java recursion recursive programming
Author: Stuart Reges (on 2014/02/13)

Write a method countToBy that takes integer parameters n and m and that produces output indicating how to count to n in increments of m. For example, to count to 10 by 1 you'd say:

```        countToBy(10, 1);
```

which should produce the following output:

```        1, 2, 3, 4, 5, 6, 7, 8, 9, 10
```

The increment does not have to be 1. For example, the following call indicates that we want to count to 25 in increments of 4:

```        countToBy(25, 4);
```

which produces this output:

```        1, 5, 9, 13, 17, 21, 25
```

It will not always be possible to start counting at 1. The first number should always be in the range of 1 to m inclusive. So if you instead count to 30 by 4, you have to start with 2. So this call:

```        countToBy(30, 4);
```

produces this output:

```        2, 6, 10, 14, 18, 22, 26, 30
```

It is possible that only one number will be printed. All output should appear on the same line. For example, the following calls:

```        countToBy(34, 5);
System.out.println(); // to complete the line of output
countToBy(3, 6);
System.out.println(); // to complete the line of output
countToBy(17, 3);
System.out.println(); // to complete the line of output
```

should produce the following output:

```        4, 9, 14, 19, 24, 29, 34
3
2, 5, 8, 11, 14, 17
```

You must exactly reproduce the format of the examples above. Your method should throw an IllegalArgumentException if either m or n is less than 1.

You may NOT use a while loop, for loop or do/while loop to solve this problem; you must use recursion.

Write your solution to countToBy below.