Проблема с использованием метода внутри класса

Задача - рекурсивное преобразование числа в иную систему счисления.

Код:

import java.util.Scanner;

class outer {
    static class recurs {
        public static int meth(){              //ввод системы счисления
            Scanner str = new Scanner(System.in);
            System.out.println("Введите систему счисления: ");
            int meth = str.nextInt();
            return meth;
        }

        public static String[] hex = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};

        public static String inverse(int num) {
            recurs m = new recurs();
            if (num == 0)
                return "";
             else {
                return inverse(num / meth()) + hex[num % meth()];    
            }
        }
    }

    static class translate {
        public static void main(String args[]) {
            recurs r = new recurs();
            Scanner str = new Scanner(System.in);
            System.out.println("Введите число: ");
            int num = str.nextInt();
            System.out.println(r.inverse(num));
        }
    }
}

Проблема в использовании метода meth внутри метода inverse, класса recurs. Программа зациклена на введении системы счисления. Как правильно организовать вывод метод meth, для дальнейшей передачи числа в метод inverse ?


Ответы (1 шт):

Автор решения: Igor
    public static String inverse(int num, int base) {
        if (num == 0)
            return "";
         else
            return inverse(num / base, base) + hex[num % base];
    }

    ...

    public static void main(String args[]) {
        Scanner str = new Scanner(System.in);
        System.out.println("Введите число: ");
        int num = str.nextInt();
        int base = recurs.meth();
        System.out.println(recurs.inverse(num, base));
    }
→ Ссылка