原题链接:蓝桥杯算法提高VIP-复数四则运算
解题思路:
这道题理解起来不难,但是有两个细节要尤其注意。
①开始我们要以浮点数读取所给的值,得出运算结果a+bi后,如果a和b的值是整数而不是小数,那么在输出时就要以整数的形式输出。
②还有一个情况是题目中所说的运算异常的情况,这个情况是针对除法运算的,要保证除数不能为零,如果为零则输出error。
注意事项:
参考代码:
def f(s):
a1 = float(s[0])
b1 = float(s[1])
ope = s[2]
a2 = float(s[3])
b2 = float(s[4])
a3 = 0
b3 = 0
if ope == '+':
a3 = a1 + a2
b3 = b1 + b2
elif ope == '-':
a3 = a1 - a2
b3 = b1 - b2
elif ope == '*':
a3 = a1*a2 - b1*b2
b3 = a1*b2 + a2*b1
elif ope == '/':
mod = a2**2 + b2**2
try:
a3 = (a1*a2 + b1*b2) / mod
b3 = (a2*b1 - a1*b2) / mod
except:
return 'error'
if a3 - int(a3) == 0:
a3 = int(a3)
if b3 - int(b3) == 0:
b3 = int(b3)
if b3 < 0:
return '{}{}i'.format(a3,b3)
elif b3 > 0:
return '{}+{}i'.format(a3,b3)
if __name__ == '__main__':
s = [i for i in input().strip().split()]
print(f(s))0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复