1051 复数乘法(C#)

我不是女神ヾ 2021-12-03 06:41 418阅读 0赞

一、题目内容如下:

复数可以写成 ( 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 1;也可以写成极坐标下的指数形式 (,其中 R 是复数模,P 是辐角,i 是虚数单位,其等价于三角形式 (。

现给定两个复数的 R 和 P,要求输出两数乘积的常规形式。

输入格式:

输入在一行中依次给出两个复数的 R​1​​, P​1​​, R​2​​, P​2​​,数字间以空格分隔。

输出格式:

在一行中按照 A+Bi 的格式输出两数乘积的常规形式,实部和虚部均保留 2 位小数。注意:如果 B 是负数,则应该写成 A-|B|i 的形式。

输入样例:

  1. 2.3 3.5 5.2 0.4

输出样例:

  1. -8.68-8.23i

二、编码中需要注意的问题和难点

1.通过数学知识或者公式计算,可得出:A=(R1*R2)cos(P1+P2),B=(R1*R2)sin(P1+P2)。

2.需要注意的是,如果B小于零,输出A-|B|i,否则B输出A+Bi。

3.本题主要的难点在于:输出时,每个数字保留两位。这里用Math.Round()方法或者.ToString(“f2”)是无法正确通过的,需要用.ToString(“0.00”),具体原因可详细阅读https://www.cnblogs.com/cjm123/p/8619910.html了解。

三、代码如下

  1. 1 using System;
  2. 2 using System.Collections.Generic;
  3. 3 using System.Diagnostics;
  4. 4 using System.Linq;
  5. 5 using System.Text;
  6. 6 using System.Text.RegularExpressions;
  7. 7 using System.Threading.Tasks;
  8. 8
  9. 9 namespace ConsoleApp1
  10. 10 {
  11. 11 class Program
  12. 12 {
  13. 13 static void Main(string[] args)
  14. 14 {
  15. 15 string line;
  16. 16 while ((line = Console.ReadLine()) != null)
  17. 17 {
  18. 18 string[] lines = line.Split();
  19. 19 float r1 = float.Parse(lines[0]);
  20. 20 float p1 = float.Parse(lines[1]);
  21. 21 float r2 = float.Parse(lines[2]);
  22. 22 float p2 = float.Parse(lines[3]);
  23. 23
  24. 24 double a = r1 * r2 * Math.Cos(p1 + p2);
  25. 25 double b = r1 * r2 * Math.Sin(p1 + p2);
  26. 26
  27. 27 Console.Write("{0}", a.ToString("0.00"));
  28. 28 if (b > 0)
  29. 29 {
  30. 30 Console.Write("+{0}i", b.ToString("0.00"));
  31. 31 }
  32. 32 else
  33. 33 {
  34. 34 Console.Write("{0}i", b.ToString("0.00"));
  35. 35 }
  36. 36 Console.WriteLine();
  37. 37 }
  38. 38 Console.ReadKey();
  39. 39 }
  40. 40 }
  41. 41 }

代码已通过。

转载于:https://www.cnblogs.com/bossing/p/11060114.html

发表评论

表情:
评论列表 (有 0 条评论,418人围观)

还没有评论,来说两句吧...

相关阅读

    相关 1051 复数乘法(JAVA)

    复数可以写成 (A+Bi) 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 i2=−1;也可以写成极坐标下的指数形式 (R×e(Pi)),其中 R 是复数模,P

    相关 PAT-1051 复数乘法 (15 分)

    复数可以写成 (A+Bi) 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 i^2=−1;也可以写成极坐标下的指数形式 (R×e​(Pi)),其中 R 是复数模

    相关 1051 复数乘法C#)

    一、题目内容如下: 复数可以写成 ( 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 1;也可以写成极坐标下的指数形式 (,其中 R 是复数模,P 是辐角