数学思维与编程思维(3)(Python)

论坛 期权论坛 期权     
罗卡角编程   2019-7-13 17:59   3760   0

我们来看一道小学奥数5年级的题目:已知A * B = AB+A+B,则
1*9*9*9*…*9*9= ?


共10次运算。(学而思培优:数学思维训练,小学奥数5年级)



我们分析这道题,可以看出每次运算后的结果输出,都是作为后一次运算的输入

我们先来看这道题的数学解法:

第一次运算:A=1,B=9
A * B = AB+A+B=1*9+1+9=1*(9+1)+9=10+9=19

第二次运算:A=19,B=9
A * B = AB+A+B=19*9+19+9=19*(9+1)+9=190+8=199

第三次运算:A=199,B=9
A * B = AB+A+B=199*9+199+9=199*(9+1)+9=1990+9=1999
。。
按照这个规律可推算,第十次运算后的表达式的值为:19999999999


我们以Python为例,再来看这道题的编程解法:

#定义一个函数f,参数为a,b,返回值为题目给定的关系:a*b+a+b

def f(a,b):
   return a*b+a+b

#按题目给定要求,把上一次运算的输出,作为下一次运算的输入,进行10次运算
a=1
for i in range(10):
   a=f(a,9)

#打印结果
print(a)

>>>19999999999


数学和编程都有自己的规律和引人入胜的解法,小朋友,哪一个都需要好好体会哟!



分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:5
帖子:1
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP