蓝桥杯-P1103(java)

                             算法训练 P1103  
                    时间限制:1.0s   内存限制:256.0MB

              
              编程实现两个复数的运算。设有两个复数 和 ,则他们的运算公式为:

              要求:(1)定义一个结构体类型来描述复数。
              (2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。
              (3)必须使用结构体指针的方法把函数的计算结果返回。
              说明:用户输入:运算符号(+,-,*,/) a b c d.
              输出:a+bi,输出时不管a,b是小于0或等于0都按该格式输出,输出时a,b都保留两位。

            输入:
              - 2.5 3.6 1.5 4.9
            输出:
              1.00+-1.30i
    package com.sihai.advance;
    import java.io.IOException;  
    import java.util.Scanner;  

    public class P1103 {  
        public static void main(String[] args) {  
            class Complex {  
                double real;  
                double image;  

                Complex() {  
                }  

                Complex(double real, double image) {  
                    this.real = real;  
                    this.image = image;  
                }  

                private void Complex(double real, double image) {  
                    // TODO Auto-generated method stub  
                    this.real = real;  
                    this.image = image;  
                }  

                public double getReal() {  
                    return real;  
                }  

                public void setReal() {  
                    this.real = real;  
                }  

                public double getImage() {  
                    return image;  
                }  

                public void setImage() {  
                    this.image = image;  
                }  

                Complex add(Complex a) {  
                    double real1 = a.getReal();  
                    double image1 = a.getImage();  
                    double newreal = real + real1;  
                    double newimage = image + image1;  
                    Complex newcomplex = new Complex(newreal, newimage);  
                    return newcomplex;  
                }  

                Complex sub(Complex a) {  
                    double real1 = a.getReal();  
                    double image1 = a.getImage();  
                    double newreal = real - real1;  
                    double newimage = image - image1;  
                    Complex newcomplex = new Complex(newreal, newimage);  
                    return newcomplex;  
                }  

                Complex mul(Complex a) {  
                    double real1 = a.getReal();  
                    double image1 = a.getImage();  
                    double newreal = real * real1 - image * image1;  
                    double newimage = image * real1 + real * image1;  
                    Complex newcomplex = new Complex(newreal, newimage);  
                    return newcomplex;  
                }  

                Complex div(Complex a) {  
                    double real1 = a.getReal();  
                    double image1 = a.getImage();  
                    double newreal = (real * real1 + image * image1)  
                            / (real1 * real1 + image1 * image1);  
                    double newimage = (image * real1 - real * image1)  
                            / (real1 * real1 + image1 * image1);  
                    Complex newcomplex = new Complex(newreal, newimage);  
                    return newcomplex;  
                }  

                public void print() {  
                    System.out.printf("%.2f+%.2fi",real,image);  
                }  
            }  
            char s = 0;  
            try {  
                s = (char)System.in.read();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
            Scanner sc = new Scanner(System.in);  
            double real = sc.nextDouble();  
            double image = sc.nextDouble();  
            double real1 = sc.nextDouble();  
            double image1 = sc.nextDouble();  
            Complex data1 = new Complex(real,image);  
            Complex data2 = new Complex(real1,image1);  
            switch (s) {  
            case '+':  
                Complex result = data1.add(data2);  
                result.print();  
                break;  
            case '-':  
                Complex result1 = data1.sub(data2);  
                result1.print();  
                break;  
            case '*':  
                Complex result2 = data1.mul(data2);  
                result2.print();  
                break;  
            case '/':  
                Complex result3 = data1.div(data2);  
                result3.print();  
                break;  
            default:  
                break;  
            }  
        }  
    }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hello-java-maker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值