===》点我返回目录《===
我们知道四则混合运算加减乘除是算数的基础,这里面乘和除又可以通过加减来实现,所以加减是更为基本的运算。这些我们小学就知道了,人类是这么走过来的,计算机也是这么走过来的。
我们先来实现两个数的乘法,a*b,按照定义就是把a自加b次,如3*4,就是把3自己加自己总共加四次。
程序如下:
def multiply(a,b):
if a==0 or b==0:
return 0
elif a==1:
return b
elif b==1:
return a
else:
r = 0
while b>=1:
r = r + a
b = b - 1
return r
print(multiply(123,12))
程序的核心就是那个while循环,将a自加b次。
你肯定看出来了,上面的程序只能计算正整数,负数算不对。所以我们再考虑一下正负数。有四种情况:+ +,+ -,- +,- -。对这四种情况,我们得出它的结果的符号,然后化为正数进行计算。程序如下:
def multiply(a,b):
sign = 1 #default to positive
if a>0 and b>0:
sign = 1
elif a>0 and b<0:
sign = -1
b = 0 - b # set b to positive
elif a<0 and b>0:
sign = -1
a = 0 - a # set a to positive
elif a<0 and b<0:
sign = 1
a = 0 - a # set a to positive
b = 0 - b # set b to positive
if a==0 or b==0:
return 0
elif a==1:
return b
elif b==1:
return a
else:
r = 0
while b>=1:
r = r + a
b = b - 1
if sign == 1: # positive
return r
else: #negative
return 0 - r
好。我们通过加法实现了乘法,循环这么多次,很笨很笨,但是确实是能干活儿。同样我们也可以用减法实现除法。
我们再琢磨一下,如果b是实数