爬楼梯
【题目描述】
假设一段楼梯共n(n>1)个台阶,小朋友一步最多能上3个台阶,那么小朋友上这段楼梯一共有多少种方法。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
def climbStairs(n): foot3 = {1: 1, 2: 2, 3: 4} # 前三阶的三种情况 if n in foot3.keys(): return foot3[n] else: return climbStairs(n - 1) + climbStairs(n - 2) + climbStairs(n - 3) # 下一阶的方法数为前三阶的和 n = int(input()) print(climbStairs(n))
杨辉三角形
【题目描述】
输出n(0<n)行杨辉三角形,n由用户输入。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
n = int(input()) triangle = [[1], [1, 1]] for i in range(2, n+1): # 已经给出前两行,所以求剩余行 first = [1] # 定义每行第一个元素 last = triangle[i - 1] # 上一行 for j in range(i - 1): # 算几次 first.append(last[j] + last[j + 1]) first.append(1) triangle.append(first) for i in triangle: for j in i: print('{0:>5}'.format(j), end="") print("\n")
筛法求素数
【题目描述】
用户输入整数n和m(1<n<m<1000),应用筛法求[n,m]范围内的所有素数。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
from math import sqrt a = input() num = a.split(" ") for i in num[::]: if i == '': num.remove(i) for i in range(int(num[0]), int(num[1])): flag = 1 k = int(sqrt(i)) # 计算该数的平方根 for j in range(2, k + 1): # i能整除从2导平方根的数字,则代表是合数,否则就是素数 if i % j == 0: flag = 0 break if flag == 1: print(i, end=" ")
查找鞍点
【题目描述】
对于给定5X5的整数矩阵,设计算法查找出所有的鞍点的信息(包括鞍点的值和行、列坐标,坐标从1开始)。
提示:鞍点的特点:列上最小,行上最大。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
matrix = [] matrix2 = [] matrix3 = [] for i in range(5): a = input() a1 = a.split(" ") # a1中的元素都是字符串,需要转换 for i in a1[::]: if i == '': a1.remove(i) # 去掉空元素 a1 = [int(x) for x in a1] # 将其中的元素转为int类型,方便排序 matrix.append(a1) # 插入到一个新列表 for i in range(0, 5): matrix2 = [] for j in range(0, 5): matrix2.append(matrix[j][i]) matrix3.append(matrix2) # 将每一列收集起来组合成新的列表 for i in range(0, 5): for j in range(0, 5): if matrix[i][j] == max(matrix[i]): # 判断是否为该行最大值 if matrix[i][j] == min(matrix3[j]): # 判断是否为该列最小值 print([i + 1, j + 1, matrix[i][j]], end="")