Вопрос по java – метод рекурсивного деления [закрыто]

-3

Мне нужно создать рекурсивный метод, который преобразует первое значение (основание 10) в число в основании второго. Это то, что у меня есть, но по какой-то причине я не могу заставить рекурсивную функцию работать должным образом. Спасибо.

package lab06250;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
      Number newNumber;
      newNumber = new Number();
      Scanner kbd = new Scanner(System.in);
      int number;
      int remainder = 0;
      int base;

      System.out.println("Enter number:");
      number = kbd.nextInt();
      System.out.println("Enter base");
      base = kbd.nextInt();
      kbd.nextLine();

     System.out.println(Division(number, base));

    }
    public static int Division(int n, int b){
        int result;
        if (n == 1)
            result = 1;
            else
               result = Division(b, (n / b));

        return n;
    }

}
Что не так с вашим кодом? Ошибки? ? нарушать дисциплину Вы должны сообщить нам детали. Hovercraft Full Of Eels
Ну, когда я пытался запустить мою программу, она не дает мне правильное значение. И это бросает мне это сообщение об ошибке; user1337740
Сначала я получил два положительных целых значения с клавиатуры, а затем мне нужно преобразовать первое значение (число из 10 оснований) в число в основании второго. user1337740
Исключение в теме & quot; main & quot; java.lang.ArithmeticException: / ноль user1337740
Я вижу по крайней мере одну ошибку в вашем базовом случае. Поскольку вы делите целые числа, вы получитеn==0 вместоn==1 bdares

Ваш Ответ

1   ответ
1

я думаю, что в вашей логике есть поток, если вы хотите изменить базу (угадайте систему счисления здесь)

работает следующим образом:

11 в десятичной системе счисления (числовая система 10), затем

1*(power(10,1)) + 1*(power(10,0)

Его двоичный эквивалент (1 самый высокий в 2 базовых)

1011

1*(power(2*3)) + 0*(power(2*2)) + 1*(power(2*1)) + 1*(power(2*0))

Его октановый эквивалент (7 самых высоких в 8 основных)

13

1*(power(8*1)) + 3*(power(8*0))  

Вам нужно что-то написать на основе вышеизложенного и исправить свою логику. Только одно предложение используйте% вместо деления и попробуйте добавить результат.

Error: User Rate Limit Exceeded user1337740
Error: User Rate Limit Exceeded user1337740

Похожие вопросы