爬楼梯

题目描述

 假设一段楼梯共n(n>1)个台阶,小朋友一步最多能上3个台阶,那么小朋友上这段楼梯一共有多少种方法。

 

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

 

 

 

杨辉三角形

题目描述

输出n0<n)行杨辉三角形,n由用户输入。

 

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")
View Code

 

 

 

筛法求素数

题目描述

用户输入整数nm1<n<m<1000),应用筛法求[n,m]范围内的所有素数。

 

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=" ")
View Code

 

 

查找鞍点

题目描述

对于给定5X5的整数矩阵,设计算法查找出所有的鞍点的信息(包括鞍点的值和行、列坐标,坐标从1开始)

提示:鞍点的特点:列上最小,行上最大。

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="")
View Code

 

posted on 2023-04-22 22:05  夜的第七章i  阅读(6)  评论(0编辑  收藏  举报