任务描述
本关任务:求两个复数相加后的结果。
两个复数之间相加的运算法则:实部与实部相加,虚部与虚部相加。
关于复数的定义,可以自行查阅,本实训不做讲解。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。
可在右侧“测试结果”区查看具体的测试集详情。
开始你的任务吧,祝你成功!
javac TestMain.java
java TestMain
/**
* 任务:求两个复数相加后的结果。
*/
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 定义一个圆类,类名为 Complex
class Complex{
// 定义四个变量:real1、image1、real2、image2 分别表示第一个虚数的实部与虚部和第二个虚数的实部与虚部,类型为int
int real1,image1,real2,image2;
// 定义一个成员方法,方法名为add,不带参数,实现两个复数相加,将实部结果与虚部结果用+拼接后返回,返回类型为String,
public String add(){
int real = real1 + real2;
int image = image1 + image2;
if (real != 0 & image != 0){
return real + "+" + image + "i";
}else if (real != 0 && image == 0){
return Integer.toString(real);
}else if(real == 0 & image != 0){
return image + "i";
}else
return Integer.toString(0);
}
}
// 相加后结果如果有虚部,将计算结果的虚部后加上i
// 如果没有虚部,只返回实部即可。
// 如果没有实部,只返回虚部,将计算结果的虚部后加上i
// 如果都没有值,返回零。
public class TestMain {
public static void main(String[] args) {
Complex c = new Complex();
c.real1 = 10;
c.image1 = 5;
c.real2 = 18;
c.image2 = 32;
Complex c1 = new Complex();
c1.real1 = 10;
c1.image1 = 7;
c1.real2 = -10;
c1.image2 = 6;
Complex c2 = new Complex();
c2.real1 = 125;
c2.image1 = -8;
c2.real2 = 1;
c2.image2 = 8;
Complex c3 = new Complex();
c3.real1 = 21;
c3.image1 = 6;
c3.real2 = -21;
c3.image2 = -6;
System.out.println("10+5i+18+32i的结果为:"+c.add());
System.out.println("10+7i+(-10)+6i的结果为:"+c1.add());
System.out.println("125+(-8i)+1+8i的结果为:"+c2.add());
System.out.print("21+6i+(-21)+(-6i)的结果为:"+c3.add());
}
}