复数的相加减

目录

任务目标:

算法思路:

实现代码:


任务目标:

定义一个复数类complex,它的内部具有两个实例变量:realPart和imagPart,分别代表复数的实部和虚部,编程实现要求的数学运算:1)实现两个复数相加;2)实现两个复数相减;3)输出运算的结果。然后,调用上述方法实现两个复数18+2i、19-13i的相加、相减,并打印出结果。


算法思路:

       本题要求实现复数的实部与虚部分别相加,我们可以利用四个方法的定义来分别进行处理,首先是正常将两组输入的数接收。

分别定义四个方法依次进行实部相加、虚部相加、实部相减、虚部相减,将值返回主函数。

       因为给定的数值输出的时候,虚部是负数,输出的格式就不符,于是在主函数输出之前添加判断语句,如果虚部为负数,输出时就把“+”去掉;如果不是负数,就正常输出。

       做到这就将题目要求实现,但是由于后面添加判断语句之后,就想到如果开头要将两组数用实部和虚部表现的话也要进行判断,并且如果原式或者运算后的结果如果有0,输出格式也不符合规范,于是就在开头的输出和末尾结果的输出分别添加判断语句,每处判断格式均一致,复制粘贴将元素更改即可。这样就能实现正负和0时的结果都能按格式输出。


实现代码:

package san25;

import java.util.Scanner;

public class FuShuXiangJia {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int a=sc.nextInt();
		int b=sc.nextInt();
		int c=sc.nextInt();
		int d=sc.nextInt();
		/*
		 嵌套判断
		 */
		
		if(a == 0){         //判断输入的正负和0值情况
			if(b == 0){
				System.out.println(0);
			}// a=0,b=0
			else{
				System.out.println(b+"i");
			}//a=0,b!=0
		}//a=0 大类
		else if (a!=0){
			if(b == 0){
			System.out.println(a);
			}//a!=0,b=0
			else if(b<0){
				System.out.println(a +""+ b+"i");
			}//a!=0,b<0
			else{
				System.out.println(a +"+"+ b+"i");
			}//a!=0,b>0
		}//a!=0  大类
		//以下判断均和上面判断格式一致
		
		if(c == 0){
			if(d == 0){
				System.out.println(0);
			}
			else{
				System.out.println(d+"i");
			}
		}
		else if (c!=0){
			if(d == 0){
			System.out.println(c);
			}
			else if(d<0){
				System.out.println(c +""+ d+"i");
			}
			else{
				System.out.println(c +"+"+ d+"i");
			}
		}
		
		int realPart =add(a,c);
		int imagPart =add1(b,d); 
		int realPart1 =minus(a,c);
		int imagPart1 =minus1(b,d);
		
		//以下判断均和上面判断格式一致
		if(realPart == 0){           //判断输出的正负和0值情况
			if(imagPart == 0){
				System.out.println(0);
			}
			else{
				System.out.println(imagPart+"i");
			}
		}
		else if (realPart!=0){
			if(imagPart == 0){
			System.out.println(realPart);
			}
			else if(imagPart<0){
				System.out.println(realPart +""+ imagPart+"i");
			}
			else{
				System.out.println(realPart +"+"+ imagPart+"i");
			}
		}
		
		//以下判断均和上面判断格式一致
		if(realPart1 == 0){
			if(imagPart1 == 0){
				System.out.println(0);
			}
			else{
				System.out.println(imagPart1+"i");
			}
		}
		else if (realPart1!=0){
			if(imagPart1 == 0){
			System.out.println(realPart1);
			}
			else if(imagPart1<0){
				System.out.println(realPart1 +""+ imagPart1+"i");
			}
			else{
				System.out.println(realPart1 +"+"+ imagPart1+"i");
			}
		}
		
	}
	/*
	 定义四个方法,分别用来实现实部相加、虚部相加、实部相减、虚部相减
	 返回值
	 */
	public static int add(int a,int c){
		int x = a + c;
		return x;
	}
	
	public static int add1(int b, int d){
		int y = b + d;
		return y;
	}
	
	public static int minus(int a,int c){
		int p = a - c;
		return p;
   }
	
	public static int minus1(int b, int d){
		int q = b - d;
		return q;
	}
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值