python简单的加法问题_python解决两位数加减法快速出题问题

近期看到一位同事在纸上写写算算,时而长吁短叹,时而搔头抓耳,问了才知道原来是在给家里小孩出两位数加减法作业,数量一大人就烦躁了,听了他的描述,觉得用python容易解决,就写了下面这段小程序:

需求:三个两位数相加减,并且不能出现负数,不能出现超过两位数的情况。

简单解析:有a, b, c三个两位数,分别介于(0,99)之间,它们之间进行加减运算,且存在(a+b)+c和a+(b+c)的情况,也就是控制运算顺序,同时兼顾两不原则,不出现负数,不出现超两位数情况。

首先,构建函数:

def plus_sub(a,b,c):

if a > b and (a-b+c) < 99:

return("({0}-{1})+{2}=".format( a, b, c))

elif b > c and (a+b-c) < 99:

return ("{0}+({1}-{2})=".format(a, b, c))

elif (a-b-c) > 0 and (a-b-c) < 99:

return ("({0}-{1})-{2}=".format(a, b, c))

elif (a + b + c) < 99:

return("{0}+{1}+{2}=".format(a, b, c))

题目中选取了满足条件的几种情况,没有穷尽所有情况,有兴趣的伙伴可以接着往下穷尽。

接着,生成随机数,循环输出:

for i in range(300):

a = rd.randint(10, 99)

b = rd.randint(10, 99)

c = rd.randint(10, 99)

if plus_sub(a, b, c):

print(plus_sub(a, b, c))

得到结果可以轻松复制到word进行打印。

21+(41-37)=

36+(55-46)=

(99-51)+43=

15+(86-30)=

28+(76-56)=

(62-34)+60=

(23-15)+54=

27+(55-53)=

(92-53)+41=

45+(73-47)=

12+(71-10)=

(99-42)+24=

48+(62-16)=

63+(66-36)=

(72-52)+62=

(23-14)+27=

12+(34-11)=

19+(92-38)=

23+25+29=

68+(75-54)=

77+(93-84)=

(55-43)+60=

55+(56-31)=

18+(70-54)=

19+(75-49)=

(17-11)+57=

(96-15)-20=

11+(43-38)=

37+(46-21)=

(80-53)+27=

(32-20)+23=

49+(94-56)=

(88-27)-40=

(77-28)+24=

18+(81-74)=

(13-10)+75=

(72-51)+18=

77+(78-64)=

66+(94-93)=

24+(39-27)=

(81-71)+14=

58+(64-60)=

(87-52)+17=

最后,附上完整代码,留着等小孩上小学了用:

import random as rd

#三个两位数相加减,并且不能出现负数,不能出现超过两位数的情况,兼顾运算顺序

def plus_sub(a,b,c):

if a > b and (a-b+c) < 99:

return("({0}-{1})+{2}=".format( a, b, c))

elif b > c and (a+b-c) < 99:

return ("{0}+({1}-{2})=".format(a, b, c))

elif (a-b-c) > 0 and (a-b-c) < 99:

return ("({0}-{1})-{2}=".format(a, b, c))

elif (a + b + c) < 99:

return("{0}+{1}+{2}=".format(a, b, c))

for i in range(300):

a = rd.randint(10, 99)

b = rd.randint(10, 99)

c = rd.randint(10, 99)

if plus_sub(a, b, c):

print(plus_sub(a, b, c))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值