题目链接:

537. 复数乘法 - 力扣(LeetCode)​leetcode-cn.com

题目描述:

给定两个表示复数的字符串。

返回表示它们乘积的字符串。注意,根据定义 i2 = -1 。

示例 1:

输入: "1+1i", "1+1i"
输出: "0+2i"
解释: (1 + i) * (1 + i) = 1 + i2 + 2 * i = 2i ,你需要将它转换为 0+2i 的形式。

示例 2:

输入: "1+-1i", "1+-1i"
输出: "0+-2i"
解释: (1 - i) * (1 - i) = 1 + i2 - 2 * i = -2i ,你需要将它转换为 0+-2i 的形式。

注意:

  1. 输入字符串不包含额外的空格。
  2. 输入字符串将以 a+bi 的形式给出,其中整数 ab 的范围均在 [-100, 100] 之间。输出也应当符合这种形式

解题思路:

复数的乘法公式为:

可以简单根据 '+' 和 'i' 符号把字符串分割为实部和虚部,然后用上式计算即可,可以看出数学的部分并不难,就是字符串分割有点麻烦。

现在很多上机笔试是要求不仅写一个简单的函数,而是也要有输入输出的部分,所以这部分提前也是要练一练,我反正有一次确定我的答案是对的,但是无奈输出格式老是被卡住。。。

本题在具体实现的时候,为了简单,我们可以用 sscanf 函数来读取字符串。

sscanf 的作用是从一个字符串中读进与指定格式相符的数据。利用它可以从字符串中取出整数、浮点数和字符串。

sscanf 和 scanf 的区别:scanf 是以键盘作为输入源,而 sscanf 是以字符串作为输入源。

代码如下:

class Solution {public:string complexNumberMultiply(string a, string b) {int a1, b1, a2, b2;sscanf(a.c_str(), "%d+%di", &a1, &b1);sscanf(b.c_str(), "%d+%di", &a2, &b2);int aa = a1 * a2 - b1 * b2;int bb = a1 * b2 + a2 * b1;return to_string(aa) + "+" + to_string(bb) + "i";}
};

如果有任何疑问,欢迎提出。如果有更好的解法,也欢迎告知。

复数乘法_leetcode No.537 复数乘法相关推荐

  1. 模拟卷Leetcode【普通】537. 复数乘法

    汇总:模拟卷Leetcode 题解汇总 537. 复数乘法 复数 可以用字符串表示,遵循 "实部+虚部i" 的形式,并满足下述条件: 实部 是一个整数,取值范围是 [-100, 1 ...

  2. Java实现 LeetCode 537 复数乘法(关于数学唯一的水题)

    537. 复数乘法 给定两个表示复数的字符串. 返回表示它们乘积的字符串.注意,根据定义 i2 = -1 . 示例 1: 输入: "1+1i", "1+1i" ...

  3. LeetCode:537. 复数乘法————中等

    题目 537. 复数乘法 复数 可以用字符串表示,遵循 "实部+虚部i" 的形式,并满足下述条件: 实部 是一个整数,取值范围是 [-100, 100] 虚部 也是一个整数,取值范 ...

  4. 537 复数乘法(模拟)

    1. 问题描述: 复数可以用字符串表示,遵循 "实部+虚部i" 的形式,并满足下述条件: 实部是一个整数,取值范围是 [-100, 100] 虚部也是一个整数,取值范围是 [-10 ...

  5. LeetCode 537. 复数乘法

    文章目录 1. 题目 2. 字符串提取数字 1. 题目 给定两个表示复数的字符串. 返回表示它们乘积的字符串.注意,根据定义 i2 = -1 . 示例 1: 输入: "1+1i", ...

  6. C#LeetCode刷题-字符串

    字符串篇 # 题名 刷题 通过率 难度 3 无重复字符的最长子串 24.6% 中等 5 最长回文子串 22.4% 中等 6 Z字形变换 35.8% 中等 8 字符串转整数 (atoi) 15.3% 中 ...

  7. C#LeetCode刷题-数学

    数学篇 # 题名 刷题 通过率 难度 2 两数相加 29.0% 中等 7 反转整数 C#LeetCode刷题之#7-反转整数(Reverse Integer) 28.6% 简单 8 字符串转整数 (a ...

  8. 如何学好C语言--你的学渣朋友告诉你

    光说不练假把式,光练不说傻把式,又练又说真把式. 真实感受,不是我不想学,是我真的不知道我哪里不会啊和得怎么做啊?本文作者当初就是这么废掉的 推荐两个练习的网站 (一)C语言网 https://www ...

  9. 万人千题第一阶段报告【待继续总结】

    学习内容概况 目的:找编程和做题的手感 具体训练内容:万人千题第一阶段题库(思维导图),同时还有一些之前做过的题 练习后总结 具体细节之后补充为文字版,概况思维导图如下: 编程细节 位运算使用技巧 d ...

最新文章

  1. 这就是我向您推荐使用Thunderbird邮件客户端的理由
  2. python编写递归函数和非递归函数、输出斐波那契数列_python 入门之斐波那契数列递归表达式算法和非递归算法...
  3. SQL Server在存储过程中编写事务处理代码的三种方法
  4. spring—Bean实例化三种方式
  5. Java enum枚举
  6. 四川大学 设计专业 C语言必修,四川大学C语言2001年真题_跨考网
  7. Solaris11创建NFS服务
  8. sql查询时间过长和什么有关系_2020年成人高考成绩查询时间是什么时候?
  9. JsonView插件的使用
  10. 一步一步写算法(之快速排序)
  11. ansible-playbook Roles include
  12. 量子计算云平台“中国版”启动 量子信息革命正在加速到来
  13. 【离散数学】数理逻辑 第一章 命题逻辑(2) 命题公式及其符号化、命题公式的赋值
  14. 怎么设置腾讯云CDN缓存规则
  15. MP3参数,格式,术语有关一切内容详解
  16. USB数据线串联电阻知识总结
  17. 广州大学人工智能原理实验三:产生式系统推理
  18. R语言实现单因素方差分析
  19. Scratch编程 烧脑算法——换位密码
  20. chinaren同学录的字数倒记数

热门文章

  1. What is Wiki?
  2. BCH能达到它的宣传吗?现实世界压力测试即将到来!
  3. LVM逻辑卷轴管理和磁盘配额实验
  4. 手把手教你简单接入微信SDK
  5. Ubuntu Linux系统下apt-get命令详解
  6. 数据库报错: SQLCODE: -418, SQLSTATE: 42610, SQLERRMC: null
  7. 2009年8月26日,用于win2003上的MSN不能正常使用
  8. docker删除image失败,conflict
  9. 算法分析的一个小例子--大数乘法
  10. 系统异常和不稳定的原因总结