PTA 1051 複數乘法(詳解+代碼)

解析:A+Bi=RcosP+R*isinP

  • a+bi 和 c+di

  • 加法:(a+c) + (b+d)i

  • 減法:(a-c) + (b-d)i

  • 乘法:(ac-bd) + (bc+ad)i

  • 除法:(ac+bd)/(cc+dd) + (bc+ad)/(cc+dd)i
    這題我就懵了,複數已經忘光了,沒想到居然會考到,在這裏複習一下,還需要注意的一個點就是輸出之前要判斷一下,a和b是否小於0.01如果小於直接將a和b的值改變爲0;

public class Pta_1051 {
    public static void main(String[] args) throws IOException {
        BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
        String[] split = buf.readLine().split("\\s");
        double R1= Double.parseDouble(split[0]);
        double P1= Double.parseDouble(split[1]);
        double R2= Double.parseDouble(split[2]);
        double P2= Double.parseDouble(split[3]);
        double A1=R1*(Math.cos(P1));
        double A2=R2*(Math.cos(P2));
        double B1=R1*(Math.sin(P1));
        double B2=R2*(Math.sin(P2));
        double A=A1*A2-B1*B2;
        double B=A2*B1+B2*A1;
        if (Math.abs(A) < 0.01) {
            A = 0;
        }
        if (Math.abs(B) < 0.01) {
            B = 0;
        }

        System.out.println(A);
        System.out.println(B);
        System.out.printf("%.2f%+.2fi\n", A, B);
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章