设置一个vip隐私,夹杂一些碎碎念......涉及到一些转自其他佬的题解
🚩flag为留存,等技术强硬再钻一把......
2024.2.12
1.分数表示

from fractions import Fraction
sum = 0
for i in range(20):
sum += Fraction(1/(2**i))
i+=1
print(sum)
库函数fractions的Fraction
2.日期问题

from datetime import*
a=0 #用于累加计数
start=date(1901,1,1)
end=date(2000,12,31)
while start<=end:
if start.weekday()==0:
a+=1
start+=timedelta(days=1)
print(a)
datetime模块
3.顺子日期

res = 0
for i in range(1, 13):
for j in range(1, 32):
s = "2022%02d%02d" % (i, j)
if "012" in s or "123" in s:
res += 1
print(res)
# 腊月是十二月
占位符
#整数占位符
>>> a = "好好%d好" % (100)
>>> print(a)
好好100好
#%4d 占4位,原字符串默认居右
>>> a = "好好%4d好" % (100)
>>> print(a)
好好 100好
#%-4d 占4位,原字符串默认居左
>>> c = "好好%-4d好" % (100)
>>> print(c)
好好100 好
#%04d 占4位,0补位
>>> d = "好好%04d好" % (100)
>>> print(d)
好好0100好
2024.2.13
4.修剪灌木

N = int(input("请输入灌木的数量:"))
for i in range(N):
l_d = i # 距离最左端点的距离
r_d = N - 1 - i # 距离最右端点的距离
max_height = 2 * max(l_d, r_d) # 最大高度为距离两端点的距离的两倍
print(max_height)
5.最少砝码

import os
import sys
# 请在此输入您的代码
N =int(input())
w=1
num=1
while w<N:
w=w*3+1
num+=1
print(num)
解析:
结果应该是最少的砝码数量
首先,如果要称的重量为1的话,只能选择重量为1的砝码,1是必选的一个砝码。
然后再称比1重的,反正都是要再加砝码,那我们为何不选一个能称的重量尽可能大的呢。
选1、2的砝码可以满足1=1,2=2,1+2=3
选1、3的砝码可以满足1=1,2=3-1,3=3,4=3+1
选1、4的砝码可以满足1=1,2=?无法称2,不合题意
因此我们选择的砝码组合是1、3,此时我们可以称的最大重量为4
当我们还需要再增加砝码时
同理可得
选1、3、9的组合可以满足小于等于13(13=1+3+9)的所有重量
比如说我定义的砝码是1 3 9 3n
1砝码的最大重量值 1
2砝码的最大重量值 4
3 131个砝码最大称到1
2个砝码最大称到43个砝码最大称到13
推出公式为:新一级的砝码最大称重=上一级砝码上限 × 3 + 1
2024.2.14
6.成绩分析

代码学习max min;小数点表示
n=int(input())
lis=list()
for i in range(n):
lis.append(int(input()))
print(max(lis))
print(min(lis))
print("{:.2f}".format(sum(lis)/n))
input函数 输入多个值


这篇博客主要探讨了Python编程中的若干算法题,包括分数表示、日期问题、顺子日期、最少砝码等问题,涉及datetime、fractions库以及一些算法技巧。还提到了成绩分析、扫雷、合法日期等实际应用题目,以及动态规划和背包问题在解决复杂问题中的应用。
最低0.47元/天 解锁文章
1835






