Моя задача состоит в том, чтобы написать программу, которая предлагает пользователь ввести положительный двойной a
и целое n
больше 2, и напечатать значение корня степени п из положительного числа a
на экран с точностью до 100 мест. Я использовал Math.pow
, чтобы иметь возможность получить корень, и мне кажется, что я все сделал правильно. Единственная проблема заключается в том, что каждый раз, когда я запускаю свою программу, вывод 1.0
, независимо от того, какие числа я вводил для a
и n
. В чем проблема с моим кодом?Расчет п-й корень из положительного числа в Java
import java.util.Scanner;
import java.lang.Math;
public class Q8 {
public static void main(String[] args) {
System.out.println("Enter a positive number: ");
Scanner in = new Scanner(System.in);
double a = in.nextDouble();
System.out.println("Enter an integer greater than 2: ");
Scanner in2 = new Scanner(System.in);
int n = in.nextInt();
System.out.println(pow (a,n));
}
private static double pow(double a, int n) {
if (n == 0){
return 1;
}
else{
double sum = Math.pow(a,(1/n));
return sum;
}
Почему всегда ответ 1.0?
Я не вижу 'root', определяемого где угодно, используемого в этом выражении:' Math.pow (a, (1/root)) '. Что это? – icza
@icza Это опечатка. Либо 'root' должен быть' n', либо 'n' должен быть' root'. –
Вы никогда не получите 100 десятичных знаков, используя 'double'. Могу ли я вас заинтересовать в «BigDecimal»? –