zoukankan      html  css  js  c++  java
  • Python 递归函数示例

    1、一个数的乘阶(一个正整数的阶乘,是所有小于及等于该数的正整数的积,数字0的乘阶是1)

    def fac_T(n):
        if n == 0:
            return 1
        else:
            return fac_T(n-1) * n

    ######### 函数优化后的定义,通过尾递归方式实现函数 ###############
    def fac_T_yh(n):
      if n == 0:
        return 1
      return fac_T_yh(n-1) * n

    调用函数:

    ret = fac_T(5)

    print(ret)

    执行结果:

    2、通过二分法,在一个已排序的数组data_set中,找出n值所在的位置;假设数组的范围是[ low.... high ],我们需要查找的数字n就在这个范围里;查找的思路是:a、拿low到high正中间的数字,我们假设这个数字是mid;b、拿数字mid和数字n相比,如果mid > n,说明我们要查找的数字n在数字low到数字mid这个区间,否则数字n就在数字mid到数字high这个区间; c、无论数字n在那个区间,我们就重复a和b的过程,直到找出数字n的位置。

    def find_num(n,low,high,lst):
        mid = int((low+high)/2)
    
        if low == high:
            # print('n不在梳理data_lst中')
            return
    
        if lst[mid] > n:
            # print('n 在数列data_lst的左边')
            find_num(n,low,lst[mid],lst)
        elif lst[mid] < n:
            # print('n 在数列data_lst的右边')
            find_num(n,lst[mid],high,lst)
    
        else:
            print('n在数列data_lst的%s位' %(lst[mid]))

    data_lst = list(range(101))

    调用函数:

    >>> find_num(55,lst[0],lst[-1],lst)

    执行结果:

  • 相关阅读:
    lnmp搭建禅道项目
    Vue 常用指令
    vue-tools
    阿里巴巴iconfont使用
    vue创建项目
    yarn 安装vue
    php 名字中间加星号
    图片转base64
    php阿里云短信功能
    php实名认证,身份证号,姓名加照片比对
  • 原文地址:https://www.cnblogs.com/rubickcn/p/13540757.html
Copyright © 2011-2022 走看看