走格子和求区间内素数平均值

本文记录了作者在线笔试遇到的两道题目,分别是求解20X15田字格从左上角到右下角的路径数量,以及计算区间内素数的平均值问题。对于走格子问题,采用二维矩阵法,将边界值设为1,其余点值等于其左边和上边的和。区间素数平均值则需要先实现素数判断函数,再计算素数列表的平均值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近参加了一个线上笔试,记录下里面两道题
  1. grid path 从一个田字格(2X2)的左上角出发,只允许向右或向下移动,恰好有6条路径。则对于20X15的,从左上角出发到右下角的路径共有多少条?
    思路:画图很直观。举例2X2
    这里先把图转换为二维矩阵,则2X2的图对应的矩阵为(3,3),grid=[[0,0,0],[0,0,0],[0,0,0]]。由于只能向右或者向下,所以第一行以及第一列的路径都是1。即grid[0][x]=0,x in range(0,n+1),grid[y][0]=0,y in range(0,m+1)。其余的点的数值就等于它左边和上边的和。
def t1(m, n):
    grid = [[0] * (n + 1) for i in range(m + 1)]
    for i in range(m + 1):
        grid[i][0] = 1
    for j in range(n + 1):
        grid[0][j] = 1
    for i in range(1, m + 1):
        for j in range(1, n + 1):
            grid[i][j] = grid[i - 1][j] + grid[i][j - 1]
    for row in grid:
        print(row)
    return grid[m][n]


if __name__ == '__main__':
    result = t1(2, 2)
    print(result)
  1. Average of prime in an inerval(求区间内的素数平均值)
    思路:1.需要一个判断素数的函数
    2.把区间内的素数放到list中,求平均值
def isPrime(num):
    if num > 1:
        for i in range(2, num):
            if (num % i) == 0:
                return False
        return True
    else:
        return False


def t2(start, end):
    if start > end:
        start, end = end, start
    primeList = []
    for n in range(start, end + 1):
        if isPrime(n):
            primeList.append(n)
    print(primeList)
    return sum(primeList) / len(primeList)


if __name__ == '__main__':
    result = t2(2, 7)
    print(result)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值