python 使用遞歸實(shí)現(xiàn)打印一個(gè)數(shù)字的每一位示例
我就廢話不多說了,直接上代碼吧!
def func(n): # 從高分為開始打印 lengh = len(str(n)) # 確定數(shù)字的長(zhǎng)度 x = 10**(lengh-1) # 確定數(shù)字的分位 if n < 10: print(n) else: print(int(n/x)) func(n % x) # 對(duì)n的x分位取余得到def func1(n): # 從低分位開始打印 if n < 10: print(n) else: print(n % 10) func(int(n / 10))
上述兇高分位打印的時(shí)候,會(huì)出現(xiàn)0無法打出的現(xiàn)象,現(xiàn)在加一個(gè)判斷做一個(gè)優(yōu)化
def f(n): num_len = len(str(n)) if n < 10: print(n) # return n else: print(int(n / (10**(num_len-1))), end=’ ’) mod = n % (10**(num_len-1)) dif_value = num_len - len(str(mod)) if dif_value > 1: for i in range(1, dif_value):print(0, end=’ ’) f(mod)f(200400900000)
當(dāng)然也有同學(xué)有跟簡(jiǎn)單的方法來寫,但是需要一定的理解力,就是把低分為的實(shí)現(xiàn)方法打印和調(diào)用換一個(gè)位置變可實(shí)現(xiàn)
def func1(n): # 從低分位開始打印 if n < 10: print(n) else: func(int(n / 10)) print(n % 10)
func(int(n / 10))這一步呢其實(shí)是先一直在調(diào)用,并沒有實(shí)現(xiàn)打印,等調(diào)用到最后一位的時(shí)候,就開始回溯,沒回溯一步,便打印一位數(shù)數(shù)來
補(bǔ)充拓展:使用python遞歸打印楊輝三角
啥也不說了,上代碼吧
# 楊輝三角 # 1# 1 1# 1 2 1#1 3 3 1# ........ #傳入上一行,生成下一行def next_line(lst): newline = [1] for x in range(len(lst) - 1): newline.append(lst[x] + lst[x + 1]) newline.append(1) return newline #定義二位數(shù)組,存放;如果為了節(jié)約空間,也可以不用放二維數(shù)組def yanglst(n): yanghui = [] L = [1] for x in range(n): yanghui.append(L) L = next_line(L) return yanghui for I in yanglst(20): print(I)
以上這篇python 使用遞歸實(shí)現(xiàn)打印一個(gè)數(shù)字的每一位示例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Python如何批量生成和調(diào)用變量2. ASP.NET MVC實(shí)現(xiàn)橫向展示購物車3. 通過CSS數(shù)學(xué)函數(shù)實(shí)現(xiàn)動(dòng)畫特效4. ASP.Net Core對(duì)USB攝像頭進(jìn)行截圖5. python利用opencv實(shí)現(xiàn)顏色檢測(cè)6. ajax動(dòng)態(tài)加載json數(shù)據(jù)并詳細(xì)解析7. ASP.Net Core(C#)創(chuàng)建Web站點(diǎn)的實(shí)現(xiàn)8. windows服務(wù)器使用IIS時(shí)thinkphp搜索中文無效問題9. Python 中如何使用 virtualenv 管理虛擬環(huán)境10. 基于 Python 實(shí)踐感知器分類算法
