我应该像那样用Java编写吗?如果没有,我该怎么写呢?
import java.util.*;
public class Soru {
public static void main(String[] args) {
int m,n,c;
double f=0;
Scanner type = new Scanner(System.in);
System.out.print("Enter the m value :");
m=type.nextInt();
System.out.print("Enter the n value :");
n=type.nextInt();
System.out.print("Enter the c value :");
c=type.nextInt();
f=Math.pow(c, m/n);
System.out.println("Resul:"+f);
}
}
答案 0 :(得分:6)
与其他语言一样,m/n
将是一个整数,对于m=1,n=2
,您将获得m/n=0
如果您想要非整数结果,请考虑将m
和n
设为doubles
- 或在评估中将它们投射到它。
示例:
int m = 1, n = 2, c = 9;
System.out.println(Math.pow(c, m/n));
System.out.println(Math.pow(c, ((double)m)/n));
将屈服:
1.0
3.0
答案 1 :(得分:1)
虽然你的逻辑是正确的,并且如果 m / n是int ,它将完美地工作,但是有些情况下它将无法给出正确的结果。例如, 5 ^(5/2)会得到 5 ^ 2 的结果。因此,请进行以下更改:
int m,n,c;
double f=0;
Scanner type = new Scanner(System.in);
System.out.print("Enter the m value :");
m=type.nextInt();
System.out.print("Enter the n value :");
n=type.nextInt();
System.out.print("Enter the c value :");
c=type.nextInt();
f=Math.pow(c, (double)m/n);
System.out.println("Resul:"+f);
完整代码如下:
import java.util.*;
public class Soru {
public static void main(String[] args) {
int m,n,c;
double f=0;
Scanner type = new Scanner(System.in);
System.out.print("Enter the m value :");
m=type.nextInt();
System.out.print("Enter the n value :");
n=type.nextInt();
System.out.print("Enter the c value :");
c=type.nextInt();
f=Math.pow(c, (double)m/n);
System.out.println("Resul:"+f);
}
}
<强>输出强>
Enter the m value :5
Enter the n value :2
Enter the c value :2
Resul:5.65685424949238