【正确答案】本题要求只能使用+=操作来实现加减乘除运算,下面重点介绍用+=操作来实现加减乘除运算的方法:
(1)加法操作:实现a+b的基本思路为对a执行b次+=操作即可;
(2)减法操作:实现a-b(a>=b)的基本思路为:不断对b执行+=操作,直到等于a为止,在这个过程中记录执行+=操作的次数;
(3)乘法操作:实现a*b的基本思路为:利用已经实现的加法操作把a相加b次,就得到了a*b的值;
(4)除法操作:实现a/b的基本思路为:利用乘法操作,使b不断乘以1,2,…n,直到b*n>b时,就可以得到商为n-1。
根据以上思路,实现代码如下:
"""
方法功能: 用+=实现加法操作(限制条件: 至少有一个非负数)
输入参数: a,b都是整数, 且有一个非负数
返回值: a+b
"""
def add(a,b):
if a<0 and b<0:
print "无法用+=操作实现"
return -1
if b>=0:
i=0
while i<b:
a+=1
i+=1
return a
else:
i=0
while i<a:
b+=1
i+=1
return b
"""
方法功能: 用+=实现加减法操作(限制条件: 被减数大于减数)
输入参数: a,b都是整数且a>=b
返回值: a-b
"""
def minus(a,b):
if a<b:
print "无法用+=操作实现"
return -1
result=0
while b!=a:
b+=1
result+=1
return result
"""
方法功能: 用+=实现加乘法操作(限制条件: 两个数都为整数)
输入参数: a,b都是正整数
返回值: a*b
"""
def multi(a,b):
if a<=0 or b<=0:
print "无法用+=操作实现"
return -1
result=0
i=0
while i<b:
result=add(result,a)
i+=1
return result
"""
方法功能: 用+=实现加除法操作(限制条件:两个数都为整数)
输入参数: a,b都是正整数
返回值: a、b
"""
def divide(a,b):
if a<=0 or b<=0:
print ”无法用+=操作实现”
return -1
result=1
tmpMulti=0
while True:
tmpMulti=multi(b,result)
if tmpMult<=a:
result+=1
else:
break
return result-1
if __name__=="__main__":
print add(2,-4)
print minus(2,-4)
print multl(2,4)
print divide(9,4)
程序的运行结果为:
-2
6
8
2
此外,在实现加法操作的时候,如果a与b都是整数,那么可以选择比较小的数进行循环,从而可以提高算法的性能。
【答案解析】[考点] 如何只使用+=操作符实现加减乘除运算。