日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

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

發(fā)布時(shí)間:2025/3/12 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python求出五位数的回文数_python之递归 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

#coding=utf-8

'''

#題目:打印出如下圖案(菱形)

nu?=?1??#?開始值

k?=?2???#?變量值

while?nu?>=?0:

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

????nu?+=?k

????if?nu?==?7:

????????k?=?-k

#題目:有一分?jǐn)?shù)序列:2/1 ,3/2 ,5/3 ,8/5 ,13/8 ,21/13... 求出這個(gè)數(shù)列的前20?項(xiàng)之和。

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

#題目:利用遞歸函數(shù)調(diào)用方式,將所輸入的 5 個(gè)字符,以相反順序打印出來。

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 個(gè)人坐在一起,問第五個(gè)人多少歲?他說比第4 個(gè)人大2 歲。問第4 個(gè)人歲數(shù),他說比第3 個(gè)人大2 歲。問第三個(gè)人,又說比第2 人大兩歲。

#?問第2 個(gè)人,說比第一個(gè)人大兩歲。最后問第一個(gè)人,他說是10?歲。請(qǐng)問第五個(gè)人多大?

def?get_age(n):

????if?n?==?1:

????????return?10

????return?get_age(n-1)?+?2

print(get_age(5))

#題目:給一個(gè)不多于 5 位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字。

def?num_reverse(n,?string):

????if?n?==?0:

????????return?

????print(string[n-1])

????num_reverse(n-1,?string)

num?=?123

num?=?str(num)#如果使用input不用轉(zhuǎn)換,但是需要判斷isnumeric()

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

#題目:一個(gè)5 位數(shù),判斷它是不是回文數(shù)。即12321 是回文數(shù),個(gè)位與萬(wàn)位相同,十位與千位相同。

def?palindrome(n,?num):

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

????????return??print('%s是回文數(shù)'%(num_))

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

num?=?'102343201'

num_?=?num?

n?=?len(num)

palindrome(n,??num)

#題目:請(qǐng)輸入星期幾的第一個(gè)字母來判斷一下是星期幾,如果第一個(gè)字母一樣,則繼續(xù)判斷第二個(gè)字母。

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

week?=?input("請(qǐng)輸入星期的首字母:")

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("請(qǐng)輸入星期的下一個(gè)字母:")

????elif?len(result)?==?0:

????????week?=?input("請(qǐng)重新輸入星期的首字母:")

????get_week(week)#return?后還要執(zhí)行這條語(yǔ)句一次

????return?result

print(get_week(week))

#題目:求一個(gè)3*3 矩陣對(duì)角線元素之和

a?=?[]

sum?=?0

for?i?in?range(3):

????a.append([])

????for?j?in?range(3):

??????? a[i].append(int(input('請(qǐng)輸入第%s行第%s列的元素:'?%?(i + 1, j + 1))))

??? print('數(shù)組:',a)

for?i?in?range(3):

????sum?+=?a[i][i]

print('數(shù)組之和:',sum)

#題目:對(duì)10?個(gè)數(shù)進(jìn)行排序

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

list_num.sort(reverse=False)

print(list_num)

'''

#題目:有一個(gè)已經(jīng)排好序的數(shù)組。現(xiàn)輸入一個(gè)數(shù),要求按原來的規(guī)律將它插入數(shù)組中。

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

有遞歸的情況:

無(wú)遞歸的情況:

錯(cuò)誤的解決方案:

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

總結(jié)

以上是生活随笔為你收集整理的python求出五位数的回文数_python之递归的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。