巧算年龄

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了巧算年龄相关的知识,希望对你有一定的参考价值。

程序地址:http://www.cheemoedu.com/exercise/33


问题描述:

有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第3个人,又说比第2个人大2岁。问第2个人,说比第1个人大2岁。问最后1个人,他说是10岁。
请问第5个人多大?


我的思路:

这个程序是一个需要不断回调原函数的典型,后面也有一个类似问题,这次换个写法;

定义一个计算年龄的函数,因为第一个人的年龄为10,后面的人依次加2,因此根据for循环按照循环的次数i计算第i个人的年龄;


我的代码:

#coding=utf-8
def olds (man):
    old=10
    for i in range(1,man):
        old+=2
        i+=1
    print "第%d个人的年龄为%d" % (man,old)
olds(1)
olds(2)
olds(3)
olds(4)
olds(5)


结果:

第1个人的年龄为10

第2个人的年龄为12

第3个人的年龄为14

第4个人的年龄为16

第5个人的年龄为18


示例代码:

def age(idx):
    return 10 if idx == 1 else age(idx-1) + 2
print age(5)


这个程序也很好理解的,就是通过判断传入的参数5依次得到age(4)+2而age(4)=age(3)+2, age(3)=age(2)+2  , age(2)=age(1)+2  ,age(1)=10,结果就是age(1)+2+2+2+2


以上是关于巧算年龄的主要内容,如果未能解决你的问题,请参考以下文章

多线程中共享变量——CCF总决赛试题

伪代码输入年龄,计算java的最大值和平均值

李新海:如何与陌生人沟通

一行 Bash 代码统计北京积分落户的年龄分布

微信小程序代码片段

VSCode自定义代码片段——CSS选择器