Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我将复数提升为幂的方法有什么问题_Java_Complex Numbers - Fatal编程技术网

Java 我将复数提升为幂的方法有什么问题

Java 我将复数提升为幂的方法有什么问题,java,complex-numbers,Java,Complex Numbers,我的方法使用De Moivre定理将复数a+bi提升为幂。然而,我没有得到正确的答案 我仔细检查了我所有的数学,结果似乎没问题,所以我想我可能是把代码弄错了 public class ComplexNumber { //instance variables private int real; private int imaginary; //constructors public ComplexNumber(int a, int b) { real =

我的方法使用De Moivre定理将复数a+bi提升为幂。然而,我没有得到正确的答案

我仔细检查了我所有的数学,结果似乎没问题,所以我想我可能是把代码弄错了

public class ComplexNumber {
//instance variables
    private int real;
    private int imaginary;

//constructors
    public ComplexNumber(int a, int b) {
        real = a;
        imaginary = b;  

//methods
    public ComplexNumber pow(int x) {
        int z = (int) Math.pow(this.getModulus(),x);
        int T = (int) Math.atan(this.imaginary/this.real);
        int a = (int) (z * Math.cos(x*T));
        int b = (int) (z * Math.sin(x*T));
        return new ComplexNumber(a, b);
    }

    public double getModulus() {
        int z = (int) Math.sqrt(real*real + imaginary*imaginary);
        return z;
    }

例如,对于提高到1次方的复数3+4i,我得到的是5+0i。

可能与您如何将所有内容强制转换为
int
以及在此过程中丢失信息有关?如果您展示如何调用此信息,以及诸如
this.invential
之类的变量包含/定义了什么,这将非常有用。您发布的代码不是一个。请阅读该链接,学习如何编写一个。如果您还没有这样做,请同时阅读,使用
atan
而不是
atan2
表示您失去象限