Создание степени с двойным основанием и целым показателем без какой-либо математики. библиотека на Java

Мне нужно сделать степень двойной базы с целочисленным показателем без использования какой-либо библиотеки math., но я получаю сообщение об ошибке:

package potencia;

import java.util.Scanner;

public class Potencia {
int n=0;
double b=0,p=0, potencia=1;
Scanner entrada= new Scanner(System.in);

public static void main(String[] args) {
    int n=0;
    double b=0,p=0, potencia=1;
    Scanner entrada= new Scanner(System.in);

    System.out.println("Por favor ingrese la base de su potencia: ");
    b=entrada.nextDouble();

    System.out.println("Por favor ingrese el exponente de su     potencia");
    n=entrada.nextInt();
    for (int i=0; i<n; i++){
        potencia= potencia*b;
        }
    System.out.println("La potencia "+n+" de "+b+ " es: "+potencia);  

    }

Ошибка:

Исключение в потоке «основной» java.util.InputMismatchException в java.util.Scanner.throwFor(Scanner.java:864) в java.util.Scanner.next(Scanner.java:1485) в java.util.Scanner.nextFloat( Scanner.java:2345) в potencia.Potencia.main(Potencia.java:20) Java возвращено: 1


person Alejandro Mejía    schedule 11.09.2019    source источник
comment
Почему вы объявляете переменные дважды? Также я не получаю никаких ошибок. Какой вклад вы давали?   -  person Goion    schedule 11.09.2019
comment
О, я делал это в разных классах, поэтому я пытался копировать и вставлять все в один и тот же, но я уже удалил их снаружи.   -  person Alejandro Mejía    schedule 11.09.2019
comment
Ошибка только когда ставлю базу типа 5.2.   -  person Alejandro Mejía    schedule 11.09.2019
comment
Еще работает. Я думаю, вы имеете в виду показатель. Что даст ошибку, так как сканер читает int.   -  person Goion    schedule 11.09.2019
comment
Вы его копируете? Возможно мне не хватает библиотеки и мне нужна мощность как (5.2)^2 но я получаю ошибку когда ставлю базу 5.2.   -  person Alejandro Mejía    schedule 11.09.2019
comment
Да. Я могу вставить код в качестве ответа, если хотите.   -  person Goion    schedule 11.09.2019
comment
Попробовал воспроизвести, у меня код работает нормально....   -  person Dor    schedule 11.09.2019
comment
Это не ошибка компилятора и не имеет ничего общего с возведением в степень. Рассматривали ли вы поиск исключения в Javadoc? Очевидно, вы что-то не так написали.   -  person user207421    schedule 11.09.2019


Ответы (1)


Я убрал избыточное замедление. Кроме того, все то же самое.

package potencia;

import java.util.Scanner;

public class Potencia {

    public static void main(String[] args) {
        int n = 0;
        double b = 0, p = 0, potencia = 1;
        Scanner entrada = new Scanner(System.in);

        System.out.println("Por favor ingrese la base de su potencia: ");
        b = entrada.nextDouble();

        System.out.println("Por favor ingrese el exponente de su     potencia");
        n = entrada.nextInt();
        for (int i = 0; i < n; i++) {
            potencia = potencia * b;
        }
        System.out.println("La potencia " + n + " de " + b + " es: " + potencia);

    }

}

Вывод:

Por favor ingrese la base de su potencia: 
5.2
Por favor ingrese el exponente de su     potencia
2
La potencia 2 de 5.2 es: 27.040000000000003
person Goion    schedule 11.09.2019
comment
о_о какую IDE используете? У меня есть netbeans, и я просто скопировал код, и это то же самое. - person Alejandro Mejía; 11.09.2019
comment
@AlejandroMejía Я использую Eclipse IDE. Я не знаю, является ли это ошибкой IDE. Вы можете протестировать свой код здесь. JDoodle - person Goion; 11.09.2019