#input #numbers #java.util.scanner #exponent #factors
#вход #числа #java.util.сканер #показатель #факторы
Вопрос:
По сути, цель программы состоит в том, чтобы отобразить все коэффициенты 2 внутри числа. Похоже, я был близок к этому, пока не попытался исправить метод «jo», чтобы правильно разделить, присвоив число = число/(число/2) [или переменный коэффициент]. После этого всякий раз, когда я ввожу число, кратное двум, номер разносится, и код после этого остается пустым. Решения? Предполагаемые примеры выходных данных будут следующими: 17 = 17 24 = 2 x 2 x 2 x 3
static Scanner bob = new Scanner(System.in); public static void main(String[] args){ System.out.println("Enter an integer between [16, 128]: "); int x = bob.nextInt(); while(x lt; 16 || x gt; 128){ System.out.println("You must enter an integer between 16 and 128, inclusive: "); x = bob.nextInt(); } String bool = jo(x); System.out.printf("%d = %s", x, bool); } public static String jo(int number) { String text = (""); int count = 0; if (number % 2 == 0) { do { while(number % 2 == 0) { int factor = number/2; text = text 2 " * "; number = (number/factor); count ; } text = text number%count; } while(number % 2 == 0); } text = text number; return text;
Комментарии:
1. Я не могу сказать, что вы пытаетесь сделать, но это выглядит слишком сложно. То, чего вы хотите, в основном
count=0; while(number % 2 == 0) {number /= 2; count }
и есть, и это все.