当前位置: 首页 > news >正文

蓝桥杯 之 填空题-位运算与循环

文章目录

  • 循环
    • 握手问题
    • 门牌制作-循环
    • 小球反弹
    • 幸运数
    • 艺术与篮球
    • 跑步
    • 卡片
  • 位运算
    • 3个1
    • 美丽的2024

位运算
在这里插入图片描述

可以关注这个Lowbit(x)

在这里插入图片描述

如何判断最低位是否是1? num&1 == 1就说明num最低位是1

循环

循环

握手问题

握手问题

在这里插入图片描述

思路分析: 可以直接计算出来,但是我们也同时可以用循环进行模拟

# 使用逆向思维
# 全部都握手-7人之间的相互握手
ans = 0
for i in range(1,50):ans+=i
# 7个人之间相互握手
ans1 = 0
for j in range(1,7):ans1+=j
print(ans-ans1)
# 答案是1204
  • 模拟的代码
ans = 0
for i in range(1, 51):for j in range(i+1, 51):if i <= 7 and j <= 7:continueelse:ans += 1

门牌制作-循环

门牌制作

在这里插入图片描述

思路分析:可以通过数学规律进行求解,但是也可以暴力循环计算

# 直接模拟
from collections import  Counter
num = []for i in range(1,2021):s = list(str(i))num.extend(s)countnum = Counter(num)
print(countnum['2'])
# 答案624

小球反弹

小球反弹

在这里插入图片描述

思路循环:关键在于运动的分解!!

在这里插入图片描述

def check(a, b):if a % b == 0 and (a // b) % 2 == 0:return Truereturn Falseimport math
t = 1
LA , LB = 0,0
while True:LA = 15*tLB = 17*t# if LA % 343720 == 0 and (LA//343720) % 2 == 0 and LB % 233333 == 0 and (LB//233333) % 2 == 0:if check(LA,343720 ) and check(LB,233333):breakt+=1
print(math.sqrt(LA**2 + LB**2))

幸运数

幸运数

在这里插入图片描述

思路分析:直接暴力求解

end = 100000001
ans = 0
def manzu(num):a = list(map(int,str(num)))n = len(a)if n % 2 == 1:return Falseif sum(a[:n//2]) == sum(a[n//2:]):return Truereturn Falsefor i in range(1,end):if manzu(i):ans+=1
print(ans)# 4430091

艺术与篮球

艺术与篮球

在这里插入图片描述

思路分析:直接暴力模拟即可

# 先建立映射表
# 闰年的计算,能够被4整除但是不能被100整除,或者能够被400整除
# 笔画对应
mat = {"0":13,"1":1,"2":2,"3":3,"4":5,"5":4,"6":4,"7":2,"8":2,"9":2}
day = {1:31,2:28,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31}
ans1,ans2 = 0,0
def run(year):if (year % 4 == 0 and year % 100 != 0 ) or (year % 400 == 0):return Trueelse:return False
def cal(num):a = list(num)suma = 0for i in a:suma += mat[i]if suma  > 50:return Trueelse:return False
for y in range(2000,2024):s1 = str(y)for m in range(1,13):s2 = str(m)if m <10:s2 = "0" + s2d = day[m]if run(y) and m == 2:d+=1for i in range(1,d+1):s3 = str(i)if i < 10:s3 = "0" + s3if cal(s1+s2+s3):ans1+=1
print(ans1)
# 3185
# 现在计算20240101到20240413
for y in range(2024,2025):s1 = str(y)for m in range(1,5):s2 = str(m)if m <10:s2 = "0" + s2d = day[m]if run(y) and m == 2:d+=1if m == 4:d = 13for i in range(1,d+1):s3 = str(i)if i < 10:s3 = "0" + s3if cal(s1+s2+s3):ans2+=1
# 43个
print(ans2)
print(ans1+ans2)
# 3228

跑步

跑步

在这里插入图片描述

思路分析:通过模拟循环暴力即可,不过得学会怎么求解当天是否是周末

from datetime import  datetime
from datetime import timedelta
# 还是暴力求解,不过得知道哪几天是周六与周日
# 就得使用到这个datetime
day = {1:31,2:28,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31}
# 31天的月份有1,3,5,7,8,10,12
# 还是得遍历
ans2 = 0
for m in range(1,13):d = day[m]for i in range(1,d+1):start1 = datetime(2022,1,1)t1 = datetime(2022,m,i) - start1da = t1.days# 分别是周六和周日if da % 7 == 0 or da % 7 == 1:ans2+=1continue# 当不满足周末的情况下if  i in {1,11,21,31}:ans2+=1
print(ans2)
# 138

卡片

卡片

在这里插入图片描述

思路分析:

  • 其实直接循环模拟,转化为字符串,所需的数字就对应减去1,记录是否能够完整的凑齐一个数字的情况,在这里我使用了这个flag,这个flag就十分重要
num = [2021]*10t = 1
flag = 0
while True:s = list(map(int,list(str(t))))for i in s:num[i] -= 1if num[i] < 0:flag = 1breakif flag == 1:breakt+=1
print(t-1)

位运算

3个1

在这里插入图片描述

思路分析:学会统计一个十进制数中转化为二进制的形式里面1的个数


# 直接暴力求解
# 位运算要学会移位运算
# 统计num二进制里面的1的个数
def cal1(num):count = 0while num > 0 :# 首先判断最低位是否是1if num & 1 == 1:count += 1# 右移操作,看看其他位的情况num = num >> 1return count == 3cou = 0
t = 1
while True:if cal1(t):cou+=1if cou == 23:print(t)breakt+=1

美丽的2024

美丽的2024

在这里插入图片描述

思路分析:直接照搬上一题的cal1函数

# 直接暴力求解
# 位运算要学会移位运算
# 统计num二进制里面的1的个数
def cal1(num):count = 0while num > 0 :# 首先判断最低位是否是1if num & 1 == 1:count += 1# 右移操作,看看其他位的情况num = num >> 1return countprint(cal1(2024))
# 7
http://www.lryc.cn/news/546244.html

相关文章:

  • iOS逆向工程概述与学习路线图
  • DeepSeek 助力 Vue3 开发:打造丝滑的时间选择器(Time Picker)
  • 基于 Ingress-Nginx 实现 mTLS 双向认证
  • 学到什么记什么(25.3.3)
  • 【子网掩码计算器:Python + Tkinter 实现】
  • 《解锁HarmonyOS NEXT高阶玩法:艺术图像识别功能开发全攻略》
  • Spring Boot的启动流程
  • 【通俗讲解电子电路】——从零开始理解生活中的电路(三)
  • TypeScript系列01-类型系统全解析
  • ragflow-mysql 启动失败案例分析
  • SslConnection::SslConnection()详解
  • unity lua属性绑定刷新
  • Self-Pro: A Self-Prompt and Tuning Framework for Graph Neural Networks
  • 企业级-数据分类分级详细方案
  • 本地部署Qwen2.5-VL-7B-Instruct模型
  • 【前端】简单原生实例合集html,css,js
  • 【Spring】配置文件的使用
  • MOM成功实施分享(七)电力电容制造MOM工艺分析与解决方案(第一部分)
  • 计算机毕业设计SpringBoot+Vue.js航空机票预定系统(源码+文档+PPT+讲解)
  • Python 爬取唐诗宋词三百首
  • 【二.提示词工程与实战应用篇】【3.Prompt调优:让AI更懂你的需求】
  • 商城源码的框架
  • WordPress如何防Webshell、防篡改、防劫持,提升WP漏洞防护能力
  • Android Flow 示例
  • 刚安装docker并启动docker服务: systemctl restart docker报错解决
  • xss笔记与打靶(更新中)
  • 游戏引擎学习第133天
  • 【鸿蒙操作系统】- 1:实习阶段的一些总结
  • Qt基础入门-详解
  • 【前端】HTML 备忘清单(超级详细!)