python蓝桥杯真题刷题打卡 | day2

数字三角形

2020省赛 动态规划 dp
在这里插入图片描述
输入输出样例
输入:

5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

输出:

27

代码:

import os
import sys

# 请在此输入您的代码
h = int(input())  # 输入数据
W = [list(map(int, input().split())) for i in range(h)]
# 循环遍历计算到每一行的和的最大值
for i in range(1, h):
    for j in range(0, i + 1):
        if j == 0:  # 最左边元素只能由右上方得到
            W[i][j] += W[i - 1][j]
        elif j == i:  # 最右边元素只能由左上方得到
            W[i][j] += W[i - 1][j - 1]
        else:  # 其余元素由上方较大值得到
            W[i][j] += max(W[i - 1][j - 1: j + 1])

if len(W)%2 == 0:
    print(max(W[-1][h // 2 - 1], W[-1][h // 2]))

else:
    print(W[-1][h // 2])

卡片

2021 填空 省赛
在这里插入图片描述
由题目可知,数字1应该是最先被用完的,所以我们这里只统计1的个数,当超过2021时,则终止
代码:

num=0  #用num用来累计用过的数字“1”的次数
for i in range(1,10000):
       num+=str(i).count("1")  #出现过几次1就 给num加上多少
       if num>2021:  #当num数量超过2021时卡牌数量不足
              break
print(i-1)

排序

2020 省赛 填空
在这里插入图片描述

代码:

import os
import sys

# 请在此输入您的代码
'''
全逆乱序的冒泡排序次数为N*(N-1)/2
15*14/2=105
14*13/2=91
100次交换至少需要15个字母
onmlkgihgfedcba
105-100=5,只需把第6个字母往后移到第1位即可
'''
print("jonmlkihgfedcba")

成绩分析

模拟 暴力 2020 省赛
在这里插入图片描述
输入输出样例
输入:

7
80
92
56
74
88
99
10

输出:

99
10
71.29

代码

import os
import sys

# 请在此输入您的代码
num = int(input())
score_list = [int(input()) for i in range(num)]
print(max(score_list))
print(min(score_list))
print("{:.2f}".format(sum(score_list)/num))

等差素数列

2017 填空 省赛
在这里插入图片描述

def f(n):
    k = int(n ** 0.5)
    for i in range(2,k+1):
        if n % i == 0:
            return False
    else:
        return True
            
    
num = []
for i in range(3,1000,2):
    for j in range(1,1000):
        if f(i+j) and f(i+2*j) and f(i+3*j) and f(i+4*j) and f(i+5*j) and f(i+6*j) and f(i+7*j) and f(i+8*j) and f(i+9*j) and f(i):
            num.append(j)

print(min(num))

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码魔法师!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值