复数乘法_leetcode No.537 复数乘法
题目链接:
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 的形式。
注意:
- 输入字符串不包含额外的空格。
- 输入字符串将以 a+bi 的形式给出,其中整数 a 和 b 的范围均在 [-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 复数乘法相关推荐
- 模拟卷Leetcode【普通】537. 复数乘法
汇总:模拟卷Leetcode 题解汇总 537. 复数乘法 复数 可以用字符串表示,遵循 "实部+虚部i" 的形式,并满足下述条件: 实部 是一个整数,取值范围是 [-100, 1 ...
- Java实现 LeetCode 537 复数乘法(关于数学唯一的水题)
537. 复数乘法 给定两个表示复数的字符串. 返回表示它们乘积的字符串.注意,根据定义 i2 = -1 . 示例 1: 输入: "1+1i", "1+1i" ...
- LeetCode:537. 复数乘法————中等
题目 537. 复数乘法 复数 可以用字符串表示,遵循 "实部+虚部i" 的形式,并满足下述条件: 实部 是一个整数,取值范围是 [-100, 100] 虚部 也是一个整数,取值范 ...
- 537 复数乘法(模拟)
1. 问题描述: 复数可以用字符串表示,遵循 "实部+虚部i" 的形式,并满足下述条件: 实部是一个整数,取值范围是 [-100, 100] 虚部也是一个整数,取值范围是 [-10 ...
- LeetCode 537. 复数乘法
文章目录 1. 题目 2. 字符串提取数字 1. 题目 给定两个表示复数的字符串. 返回表示它们乘积的字符串.注意,根据定义 i2 = -1 . 示例 1: 输入: "1+1i", ...
- C#LeetCode刷题-字符串
字符串篇 # 题名 刷题 通过率 难度 3 无重复字符的最长子串 24.6% 中等 5 最长回文子串 22.4% 中等 6 Z字形变换 35.8% 中等 8 字符串转整数 (atoi) 15.3% 中 ...
- C#LeetCode刷题-数学
数学篇 # 题名 刷题 通过率 难度 2 两数相加 29.0% 中等 7 反转整数 C#LeetCode刷题之#7-反转整数(Reverse Integer) 28.6% 简单 8 字符串转整数 (a ...
- 如何学好C语言--你的学渣朋友告诉你
光说不练假把式,光练不说傻把式,又练又说真把式. 真实感受,不是我不想学,是我真的不知道我哪里不会啊和得怎么做啊?本文作者当初就是这么废掉的 推荐两个练习的网站 (一)C语言网 https://www ...
- 万人千题第一阶段报告【待继续总结】
学习内容概况 目的:找编程和做题的手感 具体训练内容:万人千题第一阶段题库(思维导图),同时还有一些之前做过的题 练习后总结 具体细节之后补充为文字版,概况思维导图如下: 编程细节 位运算使用技巧 d ...
最新文章
- 这就是我向您推荐使用Thunderbird邮件客户端的理由
- python编写递归函数和非递归函数、输出斐波那契数列_python 入门之斐波那契数列递归表达式算法和非递归算法...
- SQL Server在存储过程中编写事务处理代码的三种方法
- spring—Bean实例化三种方式
- Java enum枚举
- 四川大学 设计专业 C语言必修,四川大学C语言2001年真题_跨考网
- Solaris11创建NFS服务
- sql查询时间过长和什么有关系_2020年成人高考成绩查询时间是什么时候?
- JsonView插件的使用
- 一步一步写算法(之快速排序)
- ansible-playbook Roles include
- 量子计算云平台“中国版”启动 量子信息革命正在加速到来
- 【离散数学】数理逻辑 第一章 命题逻辑(2) 命题公式及其符号化、命题公式的赋值
- 怎么设置腾讯云CDN缓存规则
- MP3参数,格式,术语有关一切内容详解
- USB数据线串联电阻知识总结
- 广州大学人工智能原理实验三:产生式系统推理
- R语言实现单因素方差分析
- Scratch编程 烧脑算法——换位密码
- chinaren同学录的字数倒记数