我正在尝试创建一种方法,该方法将返回数字中每个双精度x的n个根的总和,其中数字由零个或多个双标记(由空格分隔)组成,n为正。
示例:sumOfRoots(“ 1.0 4.0 9.0 16.0”,2)为10,sumOfRoots(“”,3)为0。
public static double sumOfRoots (String numbers, int n)
{
Scanner scanner = new Scanner(numbers);
Scanner b = scanner.useDelimiter(" ");
int y = b.nextInt();
double x = 0;
while (b.hasNextDouble())
{
x = x + (y ^ (1 / n));
}
return x;
}
但是我继续抛出输入不匹配错误。对我可以更改以使其起作用的任何想法吗?
答案 0 :(得分:4)
如果您希望使用Scanner
,则可以这样修改代码:
public static double sumOfRoots(String numbers, int n){
Scanner scanner = new Scanner(numbers);
double sum = 0;
while(scanner.hasNextDouble())
sum += Math.pow(scanner.nextDouble(), 1d / n);
return sum;
}
在Java中,^不是指数运算符(如注释中所述),因此您必须使用Math.pow()