gpt4 book ai didi

java - 在Java中计算正整数的n次方根

转载 作者:搜寻专家 更新时间:2023-11-01 01:12:41 25 4
gpt4 key购买 nike

我的任务是编写一个程序,提示用户输入正 double a 和一个整数n大于2,将正整数a的n次方根的值打印到屏幕,精确到100位。我已经使用 Math.pow 来获得根,而且我感觉好像我做的一切都是对的。唯一的问题是每次我运行我的程序时,无论我为 an 输入什么数字,输出都是 1.0。我的代码有什么问题?

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?

最佳答案

1/n 替换为 1.0/n

你得到的是整数除法,所以无论 n 是什么,如果它是 2 或更高,那么 1/n 就会出现零。然后你将你的数字提高到零次方,得到 1

1.0 替换 1 使除法变成浮点除法 - 也就是说,结果不会被截断为整数。这就是您想要的。

关于java - 在Java中计算正整数的n次方根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26839890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com