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

蓝桥杯刷题2.21|笔记

参考的是蓝桥云课十四天的那个题单,不知道我发这个有没有问题,如果有问题找我我立马删文。(参考蓝桥云课里边的题单,跟着大佬走,应该是没错滴,加油加油)

一、握手问题

#include <iostream>
using namespace std;
int main()
{// 请在此输入您的代码//现把这七个人排除在外的话,有43个人int a=43;int res=43*(43-1)/2;cout<<res+7*43<<'\n';return 0;
}

二、门牌问题

#include <iostream>
using namespace std;
int main()
{// 请在此输入您的代码//1到2020,2出现了几次int res=0;for(int i=1;i<=2020;i++){int t=i;while(t>0){if(t%10==2)res++;t=t/10;}}cout<<res<<'\n';return 0;
}

三、(数学几何?)小球反弹【重点理解】

(重点理解的原因是我刚开始不太会,记下来下次再看)

参考蓝桥云课题解:

#include <bits/stdc++.h>
using namespace std;int main(){long long t = 1, x = 343720, y = 233333;while(1){if((15 * t) % x == 0 && (17 * t) % y == 0) break;t++;}printf("%.2f", 2 * sqrt(15 * 15 * t * t + 17 * 17 * t * t));return 0;
}

非常巧妙,向大佬学习 

解析

1. 变量初始化
`t`: 表示小球移动的步数,初始值为1。

 `x = 343720`: 矩形的宽度。
`y = 233333`: 矩形的高度。

2. 寻找最小步数 `t`
 

while(1){if((15 * t) % x == 0 && (17 * t) % y == 0) break;t++;
}

小球每次向右移动15个单位,向上移动17个单位。
要使小球回到起点,必须满足:
  - 水平方向的总移动距离 `15 * t` 是矩形宽度 `x` 的整数倍。
  - 垂直方向的总移动距离 `17 * t` 是矩形高度 `y` 的整数倍。

 因此,`t` 必须是 `x/15` 和 `y/17` 的最小公倍数(LCM)。

3. 计算总距离
 

printf("%.2f", 2 * sqrt(15 * 15 * t * t + 17 * 17 * t * t));

小球移动的总距离可以通过勾股定理计算:
  - 水平距离:`15 * t`
  - 垂直距离:`17 * t`
  - 总距离:`sqrt((15 * t)^2 + (17 * t)^2)`
- 由于小球最终回到起点,路径是往返的,因此总距离需要乘以2。

四、(日期问题)艺术与篮球

#include <bits/stdc++.h>   // 包含所有标准库头文件(竞赛编程常用写法)
using namespace std;// 特殊数值映射表:索引0-9分别对应某种特征值(如可能代表笔画数或其他编码)
int bh[] = {13,1,2,3,5,4,4,2,2,2};  // 注意:原代码初始化语法有误,已修正为单层花括号 
// 月份天数表(索引0占位,1-12对应各月份天数)
int mon[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; // 闰年判断函数 
bool run(int year) {return (year%400==0 || (year%4==0 && year%100!=0)); // 能被400整除 或 能被4整除但不能被100整除 
}void solve() {/* 功能:统计2000年1月1日到2024年4月13日之间,日期各位数字对应特征值之和超过50的天数 */int sum = 0;    // 单日特征值累加器 int res = 0;    // 结果计数器 // 遍历目标时间范围:2000-2024年 for(int year = 2000; year <= 2024; year++) {// 动态设置二月天数(注意mon[[2]()] 的修改会影响后续计算)mon[[2]()]  = run(year) ? 29 : 28;  // 简化写法替代原if-else // 遍历12个月份for(int month = 1; month <= 12; month++) {// 遍历当月每一天(天数由mon[month]动态决定)for(int day = 1; day <= mon[month]; day++) {// 分解日期数字:年(y1-y4)、月(m1-m2)、日(d1-d2)int y1 = year/1000;        // 年的千位数字 int y2 = year/100%10;      // 年的百位数字 int y3 = year/10%10;       // 年的十位数字 int y4 = year%10;          // 年的个位数字 int m1 = month/10;         // 月的十位数字(1-9月时为0)int m2 = month%10;         // 月的个位数字 int d1 = day/10;           // 日的十位数字(1-9日时为0)int d2 = day%10;           // 日的个位数字 // 计算特征值总和(各数字对应bh数组值的累加)sum = bh[y1] + bh[y2] + bh[y3] + bh[y4] + bh[m1] + bh[m2] + bh[d1] + bh[d2];// 判断是否满足条件 if(sum > 50) res++;  // 特征值总和超过50则计数 // 终止条件:到达2024年4月13日时输出结果 if(year == 2024 && month == 4 && day == 13) {cout << "目标天数:" << res << '\n';return;  // 直接结束函数执行 }}}}
}int main() {solve();return 0;
}

五、幸运数

http://www.lryc.cn/news/540636.html

相关文章:

  • 053 性能压测 单机锁 setnx
  • 【天线】IFA天线知识点摘抄
  • Mysql视图有什么作用?你是否使用过视图?
  • 【vue项目如何利用event-stream实现文字流式输出效果】
  • 微信问题总结(onpageshow ,popstate事件)
  • 【Gin-Web】Bluebell社区项目梳理3:社区相关接口开发
  • Unity 聊天气泡根据文本内容适配
  • 对学习编程语言的一些理解
  • MySQL MHA 部署全攻略:从零搭建高可用数据库架构
  • windows怎样查看系统信息(处理器等)
  • 007 HBuilderX提示IDE service port disabled. To use CLI Call, open IDE
  • 计算机网络之TCP的可靠传输
  • Python爬虫系列教程之第十四篇:爬虫项目部署、调度与监控系统
  • 线程与进程的深入解析及 Linux 线程编程
  • 在ubuntu上用Python的openpyxl模块操作Excel的案例
  • 【OS安装与使用】part6-ubuntu 22.04+CUDA 12.4运行MARL算法(多智能体强化学习)
  • 【Python爬虫(35)】解锁Python多进程爬虫:高效数据抓取秘籍
  • HarmonyOS 开发套件 介绍 ——上篇
  • Linux 高级篇 日志管理、定制自己的Linux系统、备份与恢复
  • deepseek与其他大模型配合组合
  • 经验分享—WEB渗透测试中遇到加密内容的数据包该如何测试!
  • JUC并发—9.并发安全集合四
  • JSON格式,C语言自己实现,以及直接调用库函数(一)
  • MinkowskiEngine安装(CUDA11.8+torch2.0.1+RTX4070TI)
  • Spring监听器Listener
  • 【深度学习在图像配准中的应用与挑战】
  • 使用 Docker-compose 部署 MySQL
  • blender笔记2
  • 特殊符号_符号图案_特殊符号大全
  • Unity学习part4