复数的运算(类和对象)(写的不正规 单纯应付机考)

复数的运算(类和对象)

Time Limit: 1000MS  Memory Limit: 65536KB
Problem Description
设计一个类Complex,用于封装对复数的下列操作:
成员变量:实部real,虚部image,均为整数变量;
构造方法:无参构造方法、有参构造方法(参数2个)
成员方法:含两个复数的加、减、乘操作。
    复数相加举例: (1+2i)+(3+4i)= 4 + 6i
    复数相减举例: (1+2i)-(3+4i)= -2 - 2i
    复数相乘举例: (1+2i)*(3+4i)= -5 + 10i
要求:对复数进行连环运算。
Input

输入有多行。
第一行有两个整数,代表复数X的实部和虚部。
后续各行的第一个和第二个数表示复数Y的实部和虚部,第三个数表示操作符op: 1——复数XY相加;2——复数XY相减;3——复数XY相乘。

Output

计算数据输出其简化复数形式,如:-2-2i、-4、-3i1+2i0

Example Input
1 1
3 4 2
5 2 1
2 -1 3
0 2 2
Example Output
5-7i
Hint
输入与输出形式示例:
如果输入:
2 3
-2 1 1
则输出: 4i
如果输入:
1 2
-1 -2 1
则输出: 0

复数的输出形式示例:
实部    虚部     输出形式
   0       0        0
   -4      0        -4
   0       4        4i
   3       2       3+2i
   3      -2       3-2i
Author
zhouxq
import java.util.*;
public class Main {

	public static void main(String[] args) {
	 Scanner cin = new Scanner(System.in);
	 int x = cin.nextInt();
	 int y = cin.nextInt();
	 while(cin.hasNext()){
		 int x1 = cin.nextInt();
		 int y1 = cin.nextInt();
		 int op = cin.nextInt();
		 if(op == 1){
			 x += x1;
			 y += y1;
		 }
		 else if(op == 2){
			 x -= x1;
			 y -= y1;
		 }
		 else if(op == 3){
			 int xx = x;
			 x = x*x1 - y*y1;
			 y = xx*y1 + x1*y;
		 }
		 //System.out.println(x + "  " + y);
	 }
	
	
	 if(x == 0 && y == 0)
		 System.out.println(0);
	 else if(x == 0 && y == 1)
		 System.out.println("i");
	 else if(x == 0 && y == -1)
		 System.out.println("-i");
	 
	 else if(x==0 && y != 0)
		 System.out.println(y+"i");
	 else if(y==0 && x != 0)
		 System.out.println(x);
	 
	 else if(x != 0 && y < -1)
		 System.out.println(x+""+y+"i");
	 else if(x != 0 && y == -1)
		 System.out.println(x+"-i");
	 else if(x != 0 && y == 1)
		 System.out.println(x+"i");
	 else if(x != 0 && y > 0)
		 System.out.println(x+"+"+y+"i");
	
	 
	}

}


### 华为机考题库中OD与非OD的区别 华为的机考题库根据招聘形式的同,可以分为OD(Outsourcing Dispatch)非OD。以下从多个方面详细分析者的区别: #### 1. **用工形式** - **OD模式**:OD是外包派遣模式,目前华为社会招聘中大多数采用OD形式。这种模式下的员工由外企德科等第三方公司签约,但实际工作内容与华为内部项目密切相关[^1]。OD模式的定级范围通常为13-17级,属于华为储备人才,每年会从优秀OD员工中挑选转为正式编制。 - **非OD模式**:非OD即华为正式员工招聘,员工直接与华为签订劳动合同,享有完整的华为正式员工福利职业发展路径。 #### 2. **题库覆盖范围** - **OD机考题库**:OD机考题库主要针对外包派遣岗位,题目设计更注重实用性与基础技能考核。例如,Python、C++、Java等语言的题库中,常见算法包括滑动窗口、动态规划、广度优先搜索(BFS)、优先队列等[^2]。具体题目如“猴子摘香蕉最大值双指针”、“分数表达式计算器数据结构:栈”等[^3],这些题目更贴近实际开发场景。 - **非OD机考题库**:非OD机考题库的难度通常更高,涉及的内容更加深入广泛。除了基础算法外,还可能包含系统设计、分布式架构、大数据处理等方面的考察。这题目往往要求考生具备更强的理论功底实战经验。 #### 3. **考核重点** - **OD考核重点**:OD机考更侧重于对基本编程能力常见算法的理解与应用能力。例如,动态规划、贪心算法、二分查找等经典算法的应用[^3]。 - **非OD考核重点**:非OD机考则更注重综合能力的评估,包括但限于复杂算法设计、性能优化、大规模系统设计等。此外,对于高级别岗位,还可能涉及对最新技术趋势的理解应用能力。 #### 4. **职业发展路径** - **OD模式**:OD员工的职业发展路径相对较为局限,但每年有机会通过内部选拔转为正式员工。因此,OD模式适合希望逐步融入华为体系的求职者。 - **非OD模式**:非OD员工直接进入华为正式编制,拥有完整的职业晋升通道发展空间。这岗位更适合有明确职业规划并希望长期在华为发展的候选人。 #### 5. **薪资与福利** - **OD模式**:OD员工的薪资水平通常低于正式员工,且福利待遇由第三方公司提供,可能完全等同于华为正式员工的标准。 - **非OD模式**:非OD员工享受华为完整的薪资体系福利政策,包括股权激励、年终奖等。 --- ### 示例代码 以下是一个典型的OD机考题目示例,涉及动态规划问题: ```python def max_bananas(monkeys, bananas): """ 猴子摘香蕉的最大值问题 :param monkeys: 每只猴子的能力列表 :param bananas: 每棵树上的香蕉数量列表 :return: 最大可摘香蕉数量 """ n = len(monkeys) m = len(bananas) dp = [[0] * (m + 1) for _ in range(n + 1)] for i in range(1, n + 1): for j in range(1, m + 1): if monkeys[i - 1] >= bananas[j - 1]: dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - 1] + bananas[j - 1]) else: dp[i][j] = dp[i - 1][j] return dp[n][m] # 测试用例 monkeys = [10, 20, 30] bananas = [15, 25, 35, 45] print(max_bananas(monkeys, bananas)) # 输出结果为60 ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值