• Python练手例子(5)


    25、求1+2!+3!+...+20!的和。

    程序分析:此程序只是把累加变成了累乘。

    #python3.7
    
    n = 0
    s = 0
    t = 1
    for n in range(1, 21):
        t *= n
        s += t
    print('1! + 2! + 3! + ... + 3! + 20! = %d' % s)
    
    结果:
    1! + 2! + 3! + ... + 3! + 20! = 2561327494111820313

    26、利用递归方法求5!。

    程序分析:递归公式:fn=fn_1*4!

    #python3.7
    
    def fact(j):
        sum = 0
        if j == 0:
            sum = 1
        else:
            sum = j * fact(j - 1)
        return sum
    
    print(fact(5))
    
    结果:
    120

    27、利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

    #python 3.7
    
    def output(s, l):
        if l == 0:
            return
        print(s[l-1])
        output(s, l-1)
    
    s = input('Input a string:')
    l = len(s)
    output(s, l)
    
    结果:
    Input a string:opportunity
    y
    t
    i
    n
    u
    t
    r
    o
    p
    p
    o

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

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

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

    29、给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

    程序分析:学会分解出每一位数。

    #python 3.7
    
    x = int(input('请输入一个数:'))
    a = x / 10000
    b = x % 10000 / 1000
    c = x % 1000 / 100
    d = x % 100 / 10
    e = x % 10
    
    if a != 0:
        print('5位数:', e, d , c, b, a)
    elif b != 0:
        print('4位数:', e, d, c, b)
    elif c != 0:
        print('3位数:', e, d, c)
    elif d != 0:
        print('2位数:', e, d)
    else:
        print('1位数:', e)

    30、一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

    #python 3.7
    
    a = int(input('请输入一个数字:
    '))
    x = str(a)
    flag = True
    for i in range(int(len(x) / 2)):
        if x[i] != x[-i - 1]:
            flag = False
            break
    if flag:
        print('%d是一个回文数!' % a)
    else:
        print('%d不是一个回文数!' % a)
  • 相关阅读:
    Mac 升级后 Git报错处理
    iOS 进制转换(十进制转62进制)
    转:基于IOS上MDM技术相关资料整理及汇总
    NPM ERR! 403 403 Forbidden 问题处理
    Rxjs学习,结合angular(搁置,后续还会添加)
    如何快速关联/修改Git远程仓库地址
    VUE 路由守卫 next() / next({ ...to, replace: true }) / next(‘/‘) 说明
    chrome developer tools 的一個 bug
    IBM MQ 2035错误
    tp5 gateway 报错 stream_socket_client(): unable to connect to tcp://127.0.0.1:1236 (Connection refused)
  • 原文地址:https://www.cnblogs.com/finsomway/p/10364466.html
Copyright © 2020-2023  润新知