python2.7练习小例子(二十五)

    25):题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

    程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。

    程序源代码:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

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

    以上实例输出结果为:

18

    Python3 参考实例:

#!/usr/bin/python3

def fun(age,rank):       #age 年龄,rank 递归第几个人
    if rank == 1:
        return age
    else:
        return fun(age+2,rank-1)
print (fun(10,5))

    最简单的实现方法,不需要递归:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

def age():
   n = 10
   for i in range(1, 5):
      n = n + 2
   print("第5个人{0}岁".format(n))
age()
#!/usr/bin/env python3
#coding:utf-8

def age(n):
    if n==1:
        return 10
    if n>1:
        return (n-1)*2+10
print(age(5))

    Python3 测试实例:

def fn(n):
    if n==1:
        return 10
    return 2+fn(n-1)
print(fn(5))

    Python3 测试实例:

def age(n):
    return 10 if not n-1 else age(n-1)+2
print(age(5))

经典题目哦。如果感觉不错的话,请多多点赞支持哦。。。

  原文链接:https://blog.csdn.net/luyaran/article/details/80074745

原文地址:https://www.cnblogs.com/luyaran/p/8943921.html

时间: 2024-08-30 11:11:03

python2.7练习小例子(二十五)的相关文章

python2.7练习小例子(十)

    10):古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?     程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....     程序源代码: #!/usr/bin/python # -*- coding: UTF-8 -*- f1 = 1 f2 = 1 for i in range(1,22): print '%12ld %12ld' % (f1,f2), if (i % 3)

微软云计算介绍与实践(实践之二十五)

3.4.创建Runbook自动化活动模板 下面,小张需要在System Center 2012 Service Manager中提供自动化活动模板. 1.在System Center 2012 Service Manager控制台中,选中库工作区,展开导航树中选择运行手册 2.从已经创建的私有云,运行手册窗格中选择Runbook 3.任务窗格中的内容将会更新,现在选择创建Runbook自动化活动模板 4.在创建模板页面上填写以下数据.完成后,选择确定以打开模板编辑器 5.现在你可以改变Runbo

关于心理的二十五种倾向(查理·芒格)-2

5)避免不一致倾向避免不一致倾向实际上就是人天生就害怕改变.相同是由于人类大脑的生理机制决定的.由于这样的倾向能够带来节省运算空间和能量的优点.这样的抗改变模式的形成,可能的原因例如以下:A) 迅速作出决定对生存来说至关重要,而这样的抗改变模式有助于更快的作出决定;     这里有第四个倾向的因素,对于生存至关重要的反应(遇到生存威胁时),反应一定要快,必须形成固化的模式.这也是我们对于紧急事件的处理常常採用不断反复模拟训练的原因.B) 能够通过群体协作来获得生存优势,假设每一个人总是不停地改变

【管理心得之二十五】组织中的骂名 ----------墙头草

场景再现 ====================== {会议前} 老张:喂,老王.这次的讨论议题你怎么看? 老王:暂时还没有想好,你有什么高见? 老张:这还不简单,以前类似的事发生过. "首先..........其次..........最后........."   你看看怎样? 老王:嗯{点点头} {会议中} 老  张:"方案A 是... ... ... ... " 方案B:"方案B 是... ... ... ... " 方案C:"方

QT开发(二十五)——QT模板库

QT开发(二十五)--QT模板库 一.QTL模板库简介 QT模板库(QT Template Library 简称QTL)是一套提供对象容器的模板. QTL提供了对象的链表.对象的矢量(动态数组).从一个类型到另一个类型的映射(或称为字典)和相关的迭代器和算法.容器是包含和管理其它对象的一个对象,并且提供迭代器对被包含的对象进行访问. 1.QT容器类简介 容器是能够在内存中存储其他特定类型的对象的对象,一般是通用的模板类.QT提供了自己的一套容器类,即在QT的应用程序中,可以使用标准C++的STL

JAVA之旅(二十五)——文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine

JAVA之旅(二十五)--文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine 我们继续IO上个篇幅讲 一.文本复制 读写都说了,我们来看下其他的操作,我们首先来看复制 复制原理:其实就是将C盘下的文件数据存储到D盘的一个文件中 实现的步骤: 1.在D盘创建一个文件,用于存储文件中的数据 2.定义读取流和文件关联 3.通过不断的读写完成数据的存储 关闭资源 package com.lgl.hel

ActionScript3游戏中的图像编程(连载二十五)

2.1.2 斜面和浮雕样式的制作 现在的文字看起来更像是一张漂浮于半空的小纸片,略显单薄.下面的图层模式中,名字看起来比较有立体感的选项要数“斜面和浮雕”了,我们点一下看看.(图 2.4) 图 2.4 给文字添加斜面和浮雕样式 文字凸起来了,如果觉得有点厚,不好看,怎么办?从上往下看,大小这个属性似乎最容易理解,它大概代表斜面的尺寸.我把大小调整到3,文字确实变薄了.(图 2.5) 图 2.5 斜面大小设置为3的效果 ActionScript3游戏中的图像编程(连载二十五)

攻城狮在路上(叁)Linux(二十五)--- linux内存交换空间(swap)的构建

swap的功能是应付物理内存不足的状况,用硬盘来暂时放置内存中的信息. 对于一般主机,物理内存都差不多够用,所以也就不会用到swap,但是对于服务器而言,当遇到大量网络请求时或许就会用到. 当swap被使用的时候,主机的硬盘灯就会闪烁不停. 本篇介绍两种方式:1.设置一个swap分区   2.创建一个虚拟内存的文件. 一.使用物理分区构建swap: 1.首先是分区: A.fdisk /dev/sda; <== 根据后续提示创建一个分区. B.修改分区的ID,因为fdisk默认将分区的ID作为文件

每日算法之二十五:Divide Two Integers

Divide two integers without using multiplication, division and mod operator. 不使用乘法.除法和求模运算求两个数相除. class Solution { public: long long internalDivide(unsigned long long dividend,unsigned long long divisor) { if(dividend<divisor) return 0; int result =

企业搜索引擎开发之连接器connector(二十五)

下面开始具体分析连接器是怎么与连接器实例交互的,这里主要是分析连接器怎么从连接器实例获取数据的(前面文章有涉及基于http协议与连接器的xml格式的交互,连接器对连接器实例的设置都是通过配置文件操作的,具体文件操作尚未详细分析(com.google.enterprise.connector.persist.FileStore类)) 本文以数据库连接器实例为例来分析,数据库类型连接器是通过调用mybatis(sqlmap框架)组件与数据库进行操作的,我们通过前端提交的数据库连接器实例表单信息最终存