Python3算法基础练习:编程100例( 26 ~ 30)
生活随笔
收集整理的這篇文章主要介紹了
Python3算法基础练习:编程100例( 26 ~ 30)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
上期文章:
Python3算法基礎練習:編程100例( 21~ 25)
目錄
- 26 遞歸求 20! 的階乘
- 27 字符串反轉
- 28 猜歲數
- 29 整數打印每一位數字
- 30 回文數
26 遞歸求 20! 的階乘
題目:遞歸求 20! 的階乘
代碼:
# 遞歸求 20!def factorial(n):fn = 0if n == 0:fn = 1else:fn = n * factorial(n - 1)return fnprint(factorial(20))for i in range(20):print("%d 的階乘是 %d" % (i + 1,factorial(i + 1)))結果:
27 字符串反轉
題目:利用遞歸函數調用方式,將所輸入的5個字符,以相反順序打印出來
代碼:
# 利用遞歸函數調用方式,將所輸入的5個字符,以相反順序打印出來from sys import stdoutdef revertPrint(str,len):if len == 0:returnelse:stdout.write(str[len-1])stdout.write(' ')revertPrint(str,len - 1)str = input('請輸入 5 個字符:') l = len(str)stdout.write('反轉結果是: ') revertPrint(str,l)結果:
28 猜歲數
題目:有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說比第3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第一個人大兩歲。最后問第一個人,他說是10歲。請問第五個人多大?
也是很簡單的題
但是要求遞歸實現!!
代碼
# 請用遞歸實現def getAge(n):if n == 1:return 10 # 第一個人 10 歲else:answer = getAge(n - 1) + 2return answerprint (getAge(5))結果 18
29 整數打印每一位數字
題目:給一個正整數,要求:一、求它是幾位數,二、逆序打印出各位數字
分析: 使用 求余 求模運算,正整數,不需要正負號的判斷,不做處理!
代碼:
from sys import stdoutn = int(input("請輸入一個數:\n")) l = len(str(n))print("是 %d 位數:", l)stdout.write('從個位往后: ')for i in range(l):stdout.write(str(n % 10))stdout.write(' ')n = int(n / 10)結果:
30 回文數
題目:一個5位數,判斷它是不是回文數。即12321是回文數,個位與萬位相同,十位與千位相同
代碼:
# 一個5位數,判斷它是不是回文數。即12321是回文數,個位與萬位相同,十位與千位相同。from sys import stdoutn = int(input("請輸入一個 5 位數:\n")) s = str(n)flag = Falseif len(s) != 5:stdout.write('不是 5 位數 ') else:for i in range(len(s) // 2):if s[i] != s[-i - 1]:flag = Falsebreakelse:flag = Trueif (flag):print("是 一個回文數!" ) else:print("不是 一個回文數!" )結果:
總結
以上是生活随笔為你收集整理的Python3算法基础练习:编程100例( 26 ~ 30)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二分大法| 求X的开方,结果一个公式解决
- 下一篇: Python3算法基础练习:编程100例