四则运算
四则运算
这个作业属于哪个课程 https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/
这个作业要求在哪里 https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/homework/11376
这个作业目标 不断完成客户的需求
学号 3190704233
`import random
def prt(n1,n2,n3,n4,f):#输出函数
ope = ['+', '-', '×', '/']#operator 运算符
if n1%n2 ==0 and n3%n4 != 0:
print(str(n1//n2), ope[f], str(n3//GCD(n3,n4))+'/'+str(n4//GCD(n3,n4)), ' = ', end='')
elif n1%n2 != 0 and n3%n4 == 0:
print(str(n1//GCD(n1,n2))+'/'+str(n2//GCD(n1,n2)), ope[f], str(n3//n4), ' = ', end='')
elif n1%n2 ==0 and n3%n4 == 0:
print(str(n1//n2), ope[f], str(n3//n4), ' = ', end='')
else:
print(str(n1//GCD(n1,n2))+'/'+str(n2//GCD(n1,n2)), ope[f], str(n3//GCD(n3,n4))+'/'+str(n4//GCD(n3,n4)), ' = ', end='')
def GCD(x,y):#求最大公因数
if x > y:
smaller = y
else:
smaller = x
value = 1
for i in range(1,smaller + 1):
if((x % i == 0) and (y % i == 0)):
value = i
return value
def Iniszys(f):#自主选择四则运算函数
n1 = random.randint(1, 10)
n2 = random.randint(1, 10)
if n1>=n2 and n1 % n2 != 0:
n1,n2=min(n1,n2),max(n1,n2)
n3 = random.randint(1, 10)
n4 = random.randint(1, 10)
if n3>=n4 and n3 % n4 != 0:
n3,n4=min(n3,n4),max(n3,n4)
result = 0
if f == 0:#加法
if (n1*n4+n2*n3)%(n2*n4) == 0:
result = (n1*n4+n2*n3)//(n2*n4)#结果为整数则正常显示
else:
result = str((n1*n4+n2*n3)//GCD(n1*n4+n2*n3,n2*n4)) +'/'+str((n2*n4)//GCD(n1*n4+n2*n3,n2*n4))
prt(n1,n2,n3,n4,f)
elif f == 1:#减法,防止输出负数
if (n1*n4-n2*n3)%(n2*n4) == 0:
result = abs(n1*n4-n2*n3)//(n2*n4)#结果为整数则正常显示
else:
result = str(abs(n1*n4-n2*n3)//GCD(n1*n4-n2*n3,n2*n4)) +'/'+str((n2*n4)//GCD(n1*n4-n2*n3,n2*n4))
prt(n1,n2,n3,n4,f)
elif f== 2:#乘法
if (n1*n3)%(n2*n4) == 0:
result = abs(n1*n3)//(n2*n4)#结果为整数则正常显示
else:
result = str((n1*n3)//GCD(n1*n3,n2*n4))+'/'+str((n2*n4)//GCD(n1*n3,n2*n4))
prt(n1,n2,n3,n4,f)
elif f == 3:#除法
if (n1*n4)%(n2*n3) == 0:
result = abs(n1*n4)//(n2*n3)#结果为整数则正常显示
else:
result = str((n1*n4)//GCD(n1*n4,n2*n3))+'/'+str((n2*n3)//GCD(n1*n4,n2*n3))
prt(n1,n2,n3,n4,f)
return result
def Autoszys():# 自动生成四则运算函数
f= random.randint(0, 3)
n1 = random.randint(1, 10)
n2 = random.randint(1, 10)
if n1>=n2 and n1 % n2 != 0:
n1,n2=min(n1,n2),max(n1,n2)
n3 = random.randint(1, 10)
n4 = random.randint(1, 10)
if n3>=n4 and n3 % n4 != 0:
n3,n4=min(n3,n4),max(n3,n4)
result = 0
if f == 0:#加法
if (n1*n4+n2*n3)%(n2*n4) == 0:
result = (n1*n4+n2*n3)//(n2*n4)#结果为整数则正常显示
else:
result = str((n1*n4+n2*n3)//GCD(n1*n4+n2*n3,n2*n4)) +'/'+str((n2*n4)//GCD(n1*n4+n2*n3,n2*n4))
prt(n1,n2,n3,n4,f)
elif f == 1:#减法,防止输出负数
if (n1*n4-n2*n3)%(n2*n4) == 0:
result = abs(n1*n4-n2*n3)//(n2*n4)#结果为整数则正常显示
else:
result = str(abs(n1*n4-n2*n3)//GCD(n1*n4-n2*n3,n2*n4)) +'/'+str((n2*n4)//GCD(n1*n4-n2*n3,n2*n4))
prt(n1,n2,n3,n4,f)
elif f== 2:#乘法
if (n1*n3)%(n2*n4) == 0:
result = abs(n1*n3)//(n2*n4)#结果为整数则正常显示
else:
result = str((n1*n3)//GCD(n1*n3,n2*n4))+'/'+str((n2*n4)//GCD(n1*n3,n2*n4))
prt(n1,n2,n3,n4,f)
elif f == 3:#除法
if (n1*n4)%(n2*n3) == 0:
result = abs(n1*n4)//(n2*n3)#结果为整数则正常显示
else:
result = str((n1*n4)//GCD(n1*n4,n2*n3))+'/'+str((n2*n3)//GCD(n1*n4,n2*n3))
prt(n1,n2,n3,n4,f)
return result
def Ini():
print('输入所需要的题目数量:')
n=int(input())
result =[]
m=0
score=0#得分
print('请选择运算法则:')
print('0 --> + ')
print('1 --> - ')
print('2 --> * ')
print('3 --> / ')
f=int(input())
while m<=(n-1):
print(m+1,end='. ')
m+=1
result = Iniszys(f)
s= input()
b = 1#判断是否全对
if s== result :
print('正确')
score=score+(100//n)
else:
print('错误,正确答案是:', result )
b=0
if b == 1:
score == 100
print('你的得分是:',score)
print('测试结束')
def Auto():
print('输入所需要的题目数量:')
n=int(input())
result =[]
m=0
score=0#得分
b = 1#判断是否全对
while m<=(n-1):
print(m+1,end='. ')
m+=1
result = Autoszys()
s= input()
if s== result :
print('正确')
score=score+(100//n)
else:
print('错误,正确答案是:', result )
b=0
if b == 1:
score == 100
print('你的得分是:',score)
print('测试结束')
print('选择想要的模式:')
print('1、自动生成')
print('2、自主选择运算符号')
n=int(input())
if n==1:#自动生成运算符
Auto()
if n==2:
Ini()
`
好文要顶 关注我 收藏该文
mmmmyu
关注 - 3
粉丝 - 0
+加关注
00
« 上一篇: 第一次来
posted on 2020-10-26 21:41 mmmmyu 阅读(18) 评论(0) 编辑 收藏
刷新评论刷新页面返回顶部
发表评论
编辑
预览
支持 Markdown
退出 订阅评论
[Ctrl+Enter快捷键提交]
首页 新闻 博问 专区 闪存 班级
【推荐】华为HCIE直播密训:VRRP+MSTP典型组网案例分析、 一步玩转HCIE认证
【推荐】超50万行C++/C#: 大型组态工控、电力仿真CAD与GIS源码库
【推荐】未知数的距离,毫秒间的传递,声网与你实时互动
相关博文:
· ArrayList实现原理(JDK1.8)
· 十分钟掌握Pandas(上)——来自官网API
· Java并发之synchronized关键字和Lock接口
· Aso.NetCore的配置系统Configuration
· kalilinux修改更新源和更新命令
» 更多推荐...
最新 IT 新闻:
· 段永平黄峥唐岩卸任在40岁,陌陌新CEO王力要讲新故事
· 星巴克科技园店迎最大订单:暗示Redmi K30S至尊纪念版备货足
· 11位科幻作家参与 首次AI人机共创写作实验启动
· 特斯拉启动英国能源计划 或推出大型"虚拟发电厂"项目
· 不吹不黑,硬核拆解蚂蚁的“估值艺术”
» 更多新闻...
浙公网安备 33010602011771号