3

我应该像那样用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);
    }
}
4

2 回答 2

6

与其他语言一样,m/n将是一个整数,对于m=1,n=2,您将得到m/n=0

如果您想要非整数结果,请考虑将mand nas - 或在评估中将它们转换为它。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
于 2013-11-05T10:34:42.033 回答
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
于 2013-11-05T10:39:53.060 回答