题目描述
此时需要给小孩开发一个小程序,可以随机得到30道不重复的20以内的加减法题目,即对于题目来说,无论和还是差或者加数、减数、被减数均要小于20,且要大于等于0的整数。
下面用python实现了下面该题目:
import random
def add():
'''
获取随机的加法
:return:
'''
a = random.randint(0, 19)
b = random.randint(0, 19-a)
return a, b, a+b
def sub():
'''
获取随机的减法
:return:
'''
a = random.randint(0, 19)
b = random.randint(0, a)
return a, b, a-b
def test(n):
'''
获取n道20以内的加减法题目,无重复
:param n:
:return:
'''
res_d = {0: [], 1: []}
sig_d = {0: add, 1: sub}
i = 0
while i < n:
sig = random.randint(0, 1)
method = sig_d[sig]
a, b ,r = method()
while [a, b, r] in res_d[sig] or [b, a, r] in res_d[sig]:
a, b, r = method()
res_d[sig].append([a, b, r])
i += 1
return res_d
if __name__ == '__main__':
res_d = test(30)
for key, value in res_d.items():
sign = '-'
if key == 0:
sign = '+'
for a, b, r in value:
print(a, sign, b, '=', r)