PAT 乙级 1051. 复数乘法 (15) Java版
2017-02-23 16:53
465 查看
复数可以写成(A + Bi)的常规形式,其中A是实部,B是虚部,i是虚数单位,满足i2 =
-1;也可以写成极坐标下的指数形式(R*e(Pi)),其中R是复数模,P是辐角,i是虚数单位,其等价于三角形式(R(cos(P) + isin(P))。
现给定两个复数的R和P,要求输出两数乘积的常规形式。
输入格式:
输入在一行中依次给出两个复数的R1, P1, R2, P2,数字间以空格分隔。
输出格式:
在一行中按照“A+Bi”的格式输出两数乘积的常规形式,实部和虚部均保留2位小数。注意:如果B是负数,则应该写成“A-|B|i”的形式。
输入样例:
输出样例:
-1;也可以写成极坐标下的指数形式(R*e(Pi)),其中R是复数模,P是辐角,i是虚数单位,其等价于三角形式(R(cos(P) + isin(P))。
现给定两个复数的R和P,要求输出两数乘积的常规形式。
输入格式:
输入在一行中依次给出两个复数的R1, P1, R2, P2,数字间以空格分隔。
输出格式:
在一行中按照“A+Bi”的格式输出两数乘积的常规形式,实部和虚部均保留2位小数。注意:如果B是负数,则应该写成“A-|B|i”的形式。
输入样例:
2.3 3.5 5.2 0.4
输出样例:
-8.68-8.23i
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); double r1 = in.nextDouble(); double p1 = in.nextDouble(); double r2 = in.nextDouble(); double p2 = in.nextDouble(); in.close(); double a = r1 * Math.cos(p1) * r2 * Math.cos(p2) - r1 * Math.sin(p1) * r2 * Math.sin(p2); double b = r1 * Math.sin(p1) * r2 * Math.cos(p2) + r2 * Math.sin(p2) * r1 * Math.cos(p1); if (Math.abs(a) <= 0.001) { System.out.print("0.00"); } else { System.out.printf("%.2f", a); } if (b > 0) { System.out.printf("+%.2fi", b); } else if (Math.abs(b) <= 0.001) { System.out.print("+0.00i"); } else { System.out.printf("%.2fi", b); } } }
相关文章推荐
- 1051. 复数乘法 (15)-浙大PAT乙级真题java实现
- PAT 乙级 1051. 复数乘法 (15)
- 1051. 复数乘法 (15)-PAT乙级真题
- PAT 乙级 1051. 复数乘法 (15)(得了14)
- Java - PAT- 1051. 复数乘法 (15)
- 乙级 PAT 1051. 复数乘法 (15)
- 1051. 复数乘法 (15) PAT 乙级
- PAT乙级1051(C语言)-复数乘法 (15)
- PAT-乙级-1051. 复数乘法 (15)
- PAT乙级 1051. 复数乘法 (15)
- PAT乙级1051. 复数乘法 (15)
- pat乙级1051. 复数乘法 (15)
- PAT乙级 1051. 复数乘法 (15)
- PAT乙级1051. 复数乘法 (15)
- [PAT乙级]1051. 复数乘法 (15)
- PAT乙级—1051. 复数乘法 (15)-native
- PAT乙级练习题B1051. 复数乘法
- C++ PAT乙 1051. 复数乘法 (15)
- PAT 1051. 复数乘法 (15)--浮点数比较时的精度问题
- PAT Basic 1051. 复数乘法 (15)(C语言实现)