当前位置: 首页 > 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.dtcms.com/a/30672.html

相关文章:

  • 深度学习笔记16-VGG-16算法-Pytorch实现人脸识别
  • 一文精通JWT Token、ID Token、Access Token、Refresh Token
  • 有哪些科目二倒车入库技巧?
  • PHP 完整表单实例
  • Blender云渲染新纪元:渲染101如何释放创作潜能
  • HarmonyOS 开发套件 介绍 ——上篇
  • Java NIO与传统IO性能对比分析
  • Linux守护进程详解
  • 【信息系统项目管理师-案例真题】2022下半年案例分析答案和详解
  • 算法的数学基础
  • 泛微OA编写后端Rest接口
  • 消息队列-持续更新中
  • leetcode刷题记录(一百零八)——322. 零钱兑换
  • 【Python项目】基于Django的医疗领域用户问答意图识别系统
  • HTML应用指南:利用GET请求获取全国泸溪河门店位置信息
  • 如何利用 Vue 的生命周期钩子进行初始化和清理操作?
  • 第30篇 基于ARM A9处理器用C语言实现中断<六>
  • 文本分类与情感分析算法
  • nodejs npm install、npm run dev运行的坎坷之路
  • 华为昇腾服务器固件Firmware、驱动Drive、CANN各自的作用与联系?
  • 下载或者引入库
  • 14.7 LangChain Experimental 模块解析:解锁 Auto-GPT 开发新范式
  • 【Python】03-Python语法入门
  • 如何通过Origins公链推动边缘计算的物联网应用
  • 【Spring中事务的传播行为有哪些?】
  • go 并发 gorouting chan channel select Mutex sync.One
  • 大语言模型:从开发到运行的深度解构
  • WPF 中显示图形的方式深度解析
  • 2025年度福建省职业院校技能大赛高职组“信息安全管理与评估”赛项样题
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-split_dota.py