python 使用遞歸實(shí)現(xiàn)打印一個(gè)數(shù)字的每一位示例
我就廢話不多說(shuō)了,直接上代碼吧!
def func(n): # 從高分為開(kāi)始打印 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): # 從低分位開(kāi)始打印 if n < 10: print(n) else: print(n % 10) func(int(n / 10))
上述兇高分位打印的時(shí)候,會(huì)出現(xiàn)0無(wú)法打出的現(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)單的方法來(lái)寫(xiě),但是需要一定的理解力,就是把低分為的實(shí)現(xiàn)方法打印和調(diào)用換一個(gè)位置變可實(shí)現(xiàn)
def func1(n): # 從低分位開(kāi)始打印 if n < 10: print(n) else: func(int(n / 10)) print(n % 10)
func(int(n / 10))這一步呢其實(shí)是先一直在調(diào)用,并沒(méi)有實(shí)現(xiàn)打印,等調(diào)用到最后一位的時(shí)候,就開(kāi)始回溯,沒(méi)回溯一步,便打印一位數(shù)數(shù)來(lái)
補(bǔ)充拓展:使用python遞歸打印楊輝三角
啥也不說(shuō)了,上代碼吧
# 楊輝三角 # 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. IntelliJ IDEA安裝插件的方法步驟2. Docker 部署 Prometheus的安裝詳細(xì)教程3. idea重置默認(rèn)配置的方法步驟4. idea導(dǎo)入maven項(xiàng)目的方法5. IntelliJ IDEA設(shè)置自動(dòng)提示功能快捷鍵的方法6. idea設(shè)置代碼格式化的方法步驟7. IntelliJ IDEA調(diào)整字體大小的方法8. 通過(guò)Django Admin+HttpRunner1.5.6實(shí)現(xiàn)簡(jiǎn)易接口測(cè)試平臺(tái)9. idea打開(kāi)多個(gè)窗口的操作方法10. idea給項(xiàng)目打war包的方法步驟

網(wǎng)公網(wǎng)安備