python求出五位数的回文数_python之递归

#coding=utf-8

'''

#题目:打印出如下图案(菱形)

nu = 1  # 开始值

k = 2   # 变量值

while nu >= 0:

    print(int((7 - nu) / 2) * ' ' + '*' * nu)

    nu += k

    if nu == 7:

        k = -k

#题目:有一分数序列:2/1 ,3/2 ,5/3 ,8/5 ,13/8 ,21/13... 求出这个数列的前20 项之和。

sum = 0

a = 0

b = 1

for i in range(21):

    a, b  = b, a+b

    sum += b/a

    print(b,a,sum-1)

from functools import lru_cache

@lru_cache(maxsize=None)

def fib(n):

    if n 

        return n

    return fib(n-1) + fib(n-2)

print([fib(n) for n in range(16)])

#题目:求 1+2!+3!+...+20! 的和

from functools import lru_cache, reduce

@lru_cache(maxsize=None)

def  factorial(n):

    if n == 1:

        return 1

    return n*factorial(n-1)

sum = reduce(lambda x,y: x+y, [factorial(n) for n in range(1, 21)])

print(sum)

#题目:利用递归方法求 5! 。

from functools import lru_cache, reduce

@lru_cache(maxsize=None)

def  factorial(n):

    if n == 1:

        return 1

    return n*factorial(n-1)

print(factorial(5))

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

def str_reverse(n, string):

    if n == 0:

        return 

    print(string[n-1])

    str_reverse(n-1, string)

string = 'hello'#可替换成input

print(str_reverse(len(string), string))

#题目:有 5 个人坐在一起,问第五个人多少岁?他说比第4 个人大2 岁。问第4 个人岁数,他说比第3 个人大2 岁。问第三个人,又说比第2 人大两岁。

# 问第2 个人,说比第一个人大两岁。最后问第一个人,他说是10 岁。请问第五个人多大?

def get_age(n):

    if n == 1:

        return 10

    return get_age(n-1) + 2

print(get_age(5))

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

def num_reverse(n, string):

    if n == 0:

        return 

    print(string[n-1])

    num_reverse(n-1, string)

num = 123

num = str(num)#如果使用input不用转换,但是需要判断isnumeric()

print(num_reverse(len(num), num))

#题目:一个5 位数,判断它是不是回文数。即12321 是回文数,个位与万位相同,十位与千位相同。

def palindrome(n, num):

    if 0 <= n  and num[0] == num[-1]:

        return  print('%s是回文数'%(num_))

    palindrome(n-2, num[1:-1])

num = '102343201'

num_ = num 

n = len(num)

palindrome(n,  num)

#题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。

weeks = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

week = input("请输入星期的首字母:")

result = []

def get_week(week):

    global result

    result =[x for x in weeks if x.startswith(week)]

    if len(result) == 1:

        return result  

    elif len(result) == 2:

        week += input("请输入星期的下一个字母:")

    elif len(result) == 0:

        week = input("请重新输入星期的首字母:")

    get_week(week)#return 后还要执行这条语句一次

    return result

print(get_week(week))

#题目:求一个3*3 矩阵对角线元素之和

a = []

sum = 0

for i in range(3):

    a.append([])

    for j in range(3):

        a[i].append(int(input('请输入第%s行第%s列的元素:' % (i + 1, j + 1))))

    print('数组:',a)

for i in range(3):

    sum += a[i][i]

print('数组之和:',sum)

#题目:对10 个数进行排序

list_num = [2, 3, 1, 7, 9, 8, 4, 6, 5, 0]

list_num.sort(reverse=False)

print(list_num)

'''

#题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

list_num = [2, 3, 1, 7, 9, 8, 4, 6, 5, 0]

list_num.sort(reverse=True)

a = -1

if list_num[0]-list_num[-1] >= 0:

    for i in list_num:

        if a 1]:

            list_num.append(a)

            break

        if a > i:

            list_num.insert(list_num.index(i), a)

            break

        else:

            continue

else:

    for i in list_num:

        if a > list_num[-1]:

            list_num.append(a)

            break

        if a 

            list_num.insert(list_num.index(i), a)

            break

        else:

            continue

print(list_num)

#为什么return i 返回的是 i , 而print(i)得到的是 0

def func(i):

    if i == 0:

        print(i)

        return i

    elif i > -2:

        i = i-1

        func(i)

print(func(3))

有递归的情况:

11b9be4cded662a143a1455d43e2a315.png

无递归的情况:

83504a7e46aba7d4a0ff2dbc997784ce.png

错误的解决方案:

def func(i):

    if i == 0:

        print(i)

        return i

    elif i > -2:

        i = i-1

        func(i)

        return(i)

print(func(3))

c664d62f95457592f7390f22ee0868a4.png

正确的解决方案一:

def func(i):

    if i == 0:

        print(i)

        return i

    elif i > -2:

        i = i-1

        return(func(i))

print(func(3))

3c2893c99f4284c0acd92c6aa3ee0841.png

正确的解决方案二:

result = None

def func(i):

    if i == 0:

        print(i)

        global result

        result = i

    elif i > -2:

        i = i-1

        func(i)

    return result

print(func(3))

4246c53d6c2c2a4463c239a4957f6fb9.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559293.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html大小写字符串转换成整数,c++字符串大小写转换

由于ANSI和Unicode在函数名上有差别&#xff0c;故都列出来&#xff0c;不过本人以Unicode为主。【1.用C语言标准库函数toupper,tolower】头文件&#xff1a;cctype c下面&#xff1a;ctype.h转大写Ansi版&#xff1a; int toupper(int c);Unicode版&#xff1a;int towupper(w…

adams建立一绳索不带滑轮_ADAMS绳索仿真

在实际生活中有大量的绳索类传动运动形式。绳索类部件看似简单&#xff0c;但是用计算机软件对其模拟时却存在较大障碍。以钢丝绳为例&#xff0c;通常都是通过细长的钢丝螺旋缠绕在一起形成&#xff0c;在工作时当施加拉力载荷于其上&#xff0c;除了材料自身的拉力作用外&…

html正则判断全数字,javascript如何判断是不是数字?

javascript判断是不是数字的方法&#xff1a;方法一、使用js自带的全局函数isNaN()判断是不是数字。方法二、使用正则表达式判断是不是数字。方法三、通过typeof的返回值判断。JavaScript中判断是不是数字方法详解&#xff1a;第一种方法&#xff1a;isNaN()使用js自带全局函数…

弱加密算法有哪几种_常见的几种加密方法

常见的几种加密方法和实常见的几种加密方法 &#xff1a;MD5SHA1RSAAESDES1、MD5加密 是HASH算法一种、 是生成32位的数字字母混合码。 MD5主要特点是 不可逆MD5算法还具有以下性质&#xff1a;1、压缩性&#xff1a;任意长度的数据&#xff0c;算出的MD5值长度都是固定的。2、…

html怎么无损插入背景音乐,HTML插入背景音乐方法【全】

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Syche我今天本来是做网页玩来着&#xff0c;忽然想在博客上放一个类似QQ空间背景的音乐播放器&#xff0c;于是晚上找了之后&#xff0c;终于实现了这个功能&#xff0c;这里和大家来分享一下&#xff1a;一&#xff1a;TESTsrc&qu…

law是什么的缩写_Lawyer和Attorney 有什么不同?

据美国劳工统计局(Bureau of Labor Statistics)预计&#xff0c;2016年至2026年间&#xff0c;律师的就业增长率为8.2%。在此期间&#xff0c;预计将新增6.5万个就业岗位。而且美国律师行业的&#xff0c;律师行业在US.NEWS 的Best Social Services Jobs中排名第一&#xff0c;…

获取不到html页面上的元素,Vue v-for渲染页面,获取不到DOM元素解析

v-for 渲染循环渲染页面的出现让我们告别了繁琐的JS拼接&#xff0c;在开发上面节省了很多时间。近期在开发中发现了在某些特定情况下&#xff0c;出现了获取不到渲染出来的DOM元素的情况&#xff0c;原因身为小白的我暂时还没搞清楚(忘大佬指出)&#xff0c;但是却得出来初步的…

android ble蓝牙接收不到数据_Android蓝牙4.0 Ble读写数据详解 -2

Android蓝牙4.0 Ble读写数据详解 -2上一篇说了如何扫描与链接蓝牙 这篇文章讲讲与蓝牙的数据传输&#xff0c;与一些踩到的坑。先介绍一款调试工具&#xff0c;专门调试Ble蓝牙的app。名字叫:nRF-Connect 谷歌应用商店也能下载到。这里我先连接一个蓝牙设备 贴几个截图。UUID的…

选择座位html,影厅座位预览效果(css3)_html/css_WEB-ITnose

查看 demo 下载源码你可能对那些购买时需要选择座位的订票系统比较熟悉。通常在比赛&#xff0c;电影&#xff0c;搏击或者演唱会售票的时候需要这样做。如果能有一种座位的预览效果该有多酷啊&#xff0c;比如能够从你选择的位置的角度去预览舞台或者屏幕。这个问题引出了今天…

html 使用百度搜索,百度搜索uzer,进入主页

windows7的uzer.me怎么 安全上网百度搜索uzer&#xff0c;进入主页下载完成以后&#xff0c;点击&#xff0c;快捷方式&#xff0c;运行。登陆后&#xff0c;首先出现的是文档库&#xff0c;点击文档库。UZER上的软件和文件都打不开&#xff0c;网络没问题。因为安装的软件版本…

php广告任务网源码_THINKPHP仿我爱广告任务网|任务网站源码下载

Thinkphp仿我爱广告任务网网站源码下载&#xff0c;基于PHPMYSQL开发制作的在线广告打码任务网站源码&#xff0c;底层内核为THINKPHP&#xff0c;大体完整!有需要的朋友可下载尝试下&#xff01;安装环境&#xff1a;php5.3以上 mysql5.6安装方法&#xff1a;1、导入根目录下…

2021曲靖高考成绩查询时间,2021年曲靖高考成绩排名及成绩公布时间什么时候出来...

曲靖高考结束后&#xff0c;每年都有很多家长和考试不知道曲靖高考成绩排名如何查询、曲靖高考成绩什么时候公布以及查询方式&#xff0c;本文小编整理了曲靖高考成绩查询排名的相关知识。一、曲靖高考成绩公布时间及查询方式根据往年曲靖高考成绩公布时间预测&#xff0c;2021…

lisp 读取样条曲线座标点_如何在lisp中求一条直线和一条曲线的交点

★快捷命令的命名规律 1、 快捷命令通常是该命令英文单词的第一个或前面两个字母&#xff0c;有的是前三个字母。比如&#xff0c;直线(Line)的快捷命令是“L”&#xff1b;复制(COpy)的快捷命令是“CO”&#xff1b;线型比例(LTScale)的快捷命令是“LTS”。 在使用过程中&…

uniapp打包成html5包个ios壳,HBuilder之uni-app打包App方法

HBuilder是DCloud(数字天堂)推出的一款支持HTML5的Web开发IDE。该软件既可以支持web代码编写&#xff0c;也可以将已经编写好的项目代码打包为手机APP。HBuilder提供的打包有云端打包和本地打包两种&#xff0c;云端打包的特点是DCloud官方配置好了原生的打包环境&#xff0c;可…

笔记本超频会烧吗_笔记本电脑cpu超频是什么意思?超频会怎样啊?

展开全部CPU超频的意思是人为提高CPU的外频或倍频&#xff0c;32313133353236313431303231363533e78988e69d8331333431373933使之运行频率得到大幅提升。超频后CPU的运算速度会提高。超频的主要后果是会导致系统不稳定、系统温度升高甚至损毁硬件&#xff0c;即使超频后能稳定地…

计算机专业能评电子工程师吗,计算机工程师职称 评定条件

专业技术人员计算机应用能力认证简章职称计算机模块&#xff0c;计算机职称报名&#xff0c;职称评审计算机考试。“专业技术人员计算机应用能力”是由中华人民共和国人事部统一组考和颁发注册的计算机应用能力认证。职称计算机模块&#xff0c;计算机职称报名&#xff0c;职称…

adpater里写toast_如何在Android中显示Toast?

要在您的应用程序中显示Toast&#xff0c;请尝试以下操作&#xff1a;Toast.makeText(getActivity(), (String)data.result,Toast.LENGTH_LONG).show();另一个例子&#xff1a;Toast.makeText(getActivity(), "This is my Toast message!",Toast.LENGTH_LONG).show()…

html编译圣诞情缘,H5+JS+CSS3 实现圣诞情缘

绘制形状在svg中绘制多边形的标签是polygon&#xff0c;这是SVG中定义的基本形状&#xff0c;可以通过polygon的points绘制出多边形组成的坐标点&#xff0c;points 属性定义多边形每个角的 x 和 y 坐标。多边形至少要有3个边&#xff0c;所以points至少要定义3组坐标才能创建一…

a标签跳转后返回原页面 layui_layui页面操作,点击一个添加页面,跳转有确定,然后点击确定后将选择的几个数据返回前一个页面获取值,然后ajax请求后台...

custUserIndex.html [添加页面代码]受试者用户邮箱完成时间批量上传开始考试生成报告查看报告编辑删除layui.config({base: /layuiadmin/ //静态资源所在路径}).extend({index: lib/index //主入口模块}).use([index,laydate, table], function(){var $ layui.$,form layui.f…

html标签info,HtmlTrInfo 元素

HtmlTrInfo 元素HtmlTrInfo element3/9/2015本文内容适用于&#xff1a; SharePoint 2016 |SharePoint Foundation 2013 |SharePoint Online |SharePoint Server 2013Applies to: SharePoint 2016 | SharePoint Foundation 2013 | SharePoint Online | SharePoint Server 2013在…