Which of recursion method is better and why for reverse digits of integer?

后端 未结 5 1979
予麋鹿
予麋鹿 2020-12-22 07:00
public static int recursiveReverse(int number, int reversenumber){

    if(number <= 0) {
        return reversenumber;
    }

    reversenumber = reversenumber *         


        
5条回答
  •  天涯浪人
    2020-12-22 07:47

    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
    }
    

提交回复
热议问题