public static int recursiveReverse(int number, int reversenumber){
if(number <= 0) {
return reversenumber;
}
reversenumber = reversenumber *
Definitely not the last one. Putting a state-holding variable in a static field is just asking for trouble. Not that you're necessarily designing for concurrency, but if you had multiple threads running this code, for example, the shared reverseNumber
field would totally wreck everything.
I don't see any difference between the first and second. (Literally, they appear identical to me.)
If your goal is to simplify the calling convention by having a default value for the second parameter (reverseNumber
), then simply overload your method:
public static int recursiveReverse(int number) {
return recursiveReverse(number, 0);
}
private static int recursiveReverse(int number, int reverseNumber) {
// your code goes here
}