复数乘法 哔哩哔哩2024校园招聘面试题详解_面试 复数类

该篇文章介绍了如何使用Java编程语言解决LeetCode题目537,涉及将复数字符串转换为整数,然后应用复数乘法规则计算结果。重点在于`stringToInt`函数的实现和处理复数的乘法规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

一、题目信息

题目来源:牛客网 / LeetCode537
在这里插入图片描述
在这里插入图片描述

题目要求输入两个字符串,分别为两个复数的表达式,需要你输出两个复数的乘法结果。


二、解题方法

分别获取两个字符串的整数部分,再把这两部分字符串转换成整数,最后用复数乘法公式得出结果。

复数乘法公式:
在这里插入图片描述
也就是说我们只需要在两个字符串中获取a,b,x,y这四个数字。我这里用一个stringtoInt方法解决。具体思路在代码中

三、实现代码

如果是在牛客网上做题,需要自己定义Main函数,和输入输出。

class  Main{
    public  static  int stringtoInt(String s){
        int num=0;
        int flag=11;
        for (int i = 0; i <s.length() ; i++) {
            //如果有符号,说明是复数
            if(s.charAt(i)=='-'){
                flag=-1;
            }
            else  if(s.charAt(i)>='0' && s.charAt(i)<='9'){
                //eg: s='112'
                num=num\*10+(s.charAt(i)-'0');
            }
        }
        return  num \*flag;
    }
    public static void main(String[] args) {
      String s1,s2;
        Scanner scanner=new Scanner(System.in);
        s1=scanner.nextLine();
        s2=scanner.nextLine();
        //截取整数部分
        String s1First=s1.substring(0,s1.indexOf('+'));
        String s2First=s2.substring(0,s2.indexOf('+'));
        //获取复数部分
        String s1Second =s1.substring(s1.indexOf('+')+1);
        String s2Second =s2.substring(s2.indexOf('+')+1);
        //把字符串转换成整数 复数和整数都是
        int s1F=stringtoInt(s1First);
        int s2F=stringtoInt(s2First);
        int s1S=stringtoInt(s1Second);
        int s2S=stringtoInt(s2Second);
        //(a+ib)×(x+iy)=ax+i^2by+i(bx+ay)
        //=ax−by+i(bx+ay)
        //
        //计算整数部分
        int F=s1F\*s2F -s1S\*s2S;
        //计算复数部分
        int S=s1F\*s2S+s1S\*s2F;
        System.out.println(F+"+"+S+"i");
    }
}

最后

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。
在这里插入图片描述

讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。
[外链图片转存中…(img-msYoQbO8-1714670351920)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值