#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))

有递归的情况:

无递归的情况:

错误的解决方案:

def func(i):

if i == 0:

print(i)

return i

elif i > -2:

i = i-1

func(i)

return(i)

print(func(3))

正确的解决方案一:

def func(i):

if i == 0:

print(i)

return i

elif i > -2:

i = i-1

return(func(i))

print(func(3))

正确的解决方案二:

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))

python求出五位数的回文数_python之递归相关推荐

  1. python判断回文数_Python练习题---判断回文数

    设n是一个任意自然数,如果n的各位数字反向排序所得的自然数与n相等,则n被称为回文数,从键盘输入一个5位数字 ,请编写程序判断这个数字是不是回文数. 思路:先获取一个字符串,再判断该字符串是否满足是自 ...

  2. python怎么设置回文数_python如何写一个函数判断回文数?

    python如何写一个函数判断回文数? python写一个函数判断回文数的方法: 设n是一任意自然数.若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数.例如,若n=1234321,则称 ...

  3. python输入一个五位数、判断是否为回文数_python如何判断是不是回文数

    什么是回文数: 有这样一类数,他们顺着看和倒着看是相同的数,例如:12321,1221,2332等,这样的数字就称为:回文数. 例子:输入一个5位数,判断它是不是回文数.即12321是回文数,个位与万 ...

  4. 【Python蓝桥杯】特殊回文数 123321是一个非常特殊的数,它从左边读和从右边读是一样的。输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。

    最近在刷蓝桥杯题目,按题目做一下笔记整理,顺便分享交流一下,有更好的解决方案欢迎大家共同提出探讨,以下源代码为系统提交满分答案 特殊回文数 问题描述 资源限制 Python时间限制:5.0s. 问题描 ...

  5. python判断回文数_python如何判断是不是回文数

    什么是回文数: 有这样一类数,他们顺着看和倒着看是相同的数,例如:12321,1221,2332等,这样的数字就称为:回文数. 例子:输入一个5位数,判断它是不是回文数.即12321是回文数,个位与万 ...

  6. C语言判断一个五位数是不是回文数

    判断方法:若这个五位数的万位数等于个位数且千位数等于十位数,该数即为回文数,否则就不是回文数. 编码实现: #include<stdio.h> int main() {int wan,qi ...

  7. 五位数回文数c语言程序,五位数的回文数有多少个

    2018-12-16 数学中有哪些回文数? 简介折叠编辑本段回文数是指一个像16461这样"对称"的数,即:将这个数的数字按相反的顺序重新排列后,所得到的数和原来的数一样.这里,& ...

  8. python判断回文数_Python实现判断一个整数是否为回文数算法示例

    本文实例讲述了Python实现判断一个整数是否为回文数算法.分享给大家供大家参考,具体如下: 第一个思路是先将整数转换为字符串,再将字符串翻转并与原字符串做比较 def isPalindrome(se ...

  9. LintCode Python 简单级题目 491.回文数

    原题描述: 判断一个正整数是不是回文数. 回文数的定义是,将这个数反转之后,得到的数仍然是同一个数. 注意事项 给的数一定保证是32位正整数,但是反转之后的数就未必了. 您在真实的面试中是否遇到过这个 ...

最新文章

  1. sys.stdout.write与sys.sterr.write(二)
  2. python环境未激活_关于conda使用环境未被激活问题
  3. c++在调用类的时候不一定非得实例化对象哦,有时候你不写系统会为你默认生成一个临时实例对象哦~
  4. Linux企业生产环境用户权限集中管理项目方案案例
  5. SpringMVC自定义配置消息转换器踩坑总结
  6. WORD自动生成目录,目录中页码链接到正文的页码
  7. html所有的标签,html所有标签超详细概述
  8. Python与数据库之学员管理系统
  9. leetcode 506. Relative Ranks(python)
  10. uni-app 退出app操作
  11. 利用Python里的cv2(opencv)改变图片大小【同时也是cv2.resize的学习】
  12. 【高分励志电影合集】
  13. 【看了就懂】P问题、NP问题、NP完全问题和NP难问题
  14. 毕设中常出现的定性检验与定量检验的方法及误差指标计算公式【自用】
  15. kubernetes简介
  16. FCKeditor简介
  17. 基于PHP的学生在线成绩管理系统
  18. OUC-SE-GROUP09-BLOG1
  19. antd Popconfirm组件样式错乱问题
  20. 侯捷c++课程笔记 (面向对象高级编程)

热门文章

  1. 《JavaScript权威指南》——JavaScript核心
  2. www(apache)服务器的基本设置
  3. Python3之logging输出写入日志
  4. PyTorch系列 (二): pytorch数据读取自制数据集并
  5. 玩玩机器学习5——构造单层神经网络解决非线性函数(三次函数)的曲线拟合
  6. python print 变量_Python之print()函数与变量
  7. C++PrimerPlus学习——第十一章编程练习
  8. java变量用来干嘛_Java
  9. linux 查看neihe版本_linux查看系统内核版本号
  10. python前端代码_python前端HTML