人间理想云 2021-10-31 23:39 采纳率: 50%
浏览 83
已结题

Java中实现两复数相加相减

如何用一个变量来实现两复数的实部相加相减
,以及虚部的相加相减

  • 写回答

1条回答 默认 最新

  • 冰思雨 2021-11-01 10:56
    关注
    
    import java.math.BigDecimal;
    
    public class ComplexNumber {
    
        private final BigDecimal realPart;
        private final BigDecimal imaginaryPart;
    
        public ComplexNumber(BigDecimal realPart, BigDecimal imaginaryPart) {
            this.realPart = realPart;
            this.imaginaryPart = imaginaryPart;
        }
    
        public ComplexNumber(double realPart, double imaginaryPart) {
            this(BigDecimal.valueOf(realPart), BigDecimal.valueOf(imaginaryPart));
        }
    
        public ComplexNumber(int realPart, int imaginaryPart) {
            this(BigDecimal.valueOf(realPart), BigDecimal.valueOf(imaginaryPart));
        }
    
        public ComplexNumber add(ComplexNumber val) {
            return new ComplexNumber(realPart.add(val.realPart), imaginaryPart.add(val.imaginaryPart));
        }
    
        public BigDecimal getRealPart() {
            return realPart;
        }
    
        public BigDecimal getImaginaryPart() {
            return imaginaryPart;
        }
    
        @Override
        public String toString() {
    
            if (realPart == BigDecimal.ZERO && imaginaryPart == BigDecimal.ZERO) {
                return "0";
            }
            if (realPart != BigDecimal.ZERO && imaginaryPart != BigDecimal.ZERO) {
                return realPart + " + " + imaginaryPart + "i";
            }
            return realPart == BigDecimal.ZERO ? imaginaryPart + "i" : String.valueOf(realPart);
        }
    
        public static void main(String[] args) {
            ComplexNumber x1 = new ComplexNumber(1, 2);
            ComplexNumber x2 = new ComplexNumber(3, 4);
            ComplexNumber x3 = x1.add(x2);
            System.out.println(x3);
        }
    }
    
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月16日
  • 创建了问题 10月31日