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

蓝桥杯15 填空题

1.握手问题:

思路:首先当所有人都握过手,由于一次握手相当于两个人都握手过,所以容易发现这是一个组合问题,为(50*49)/2,而其中有7个人没有相互握过手,那么减去(7*6)/2,结果为1204.

2.小球反弹:

思路:如果直接按照题意画路径会发现很复杂,也比较难直接找到打到角落的条件,这时候可以想到化曲为直,复杂问题简单化,在初中的时候学过光的反射,也画过镜子的光路图,按镜面对称不会改变光的路程,这里也是一样的,把左面扩展开来,最终当dx和dy分别是343720和233333的倍数即可。

细节

1) 如何对浮点数四舍五入至保留两位小数?直接看很难找到相应的函数,但是我们可以想到round 它的功能是找到一个与浮点数最近的整数,比如2.77离3近,则为3,2.11离 2近,则为2。如果我们将一个数先乘100,用round操作之后再除以100,岂不是可以达到四舍五入保留两位小数的效果了?

2) 还有sum最后再用勾股定理算比较合适,因为要算斜边又一直直角边比例是要用到开方的,而sqrt只能用于double型数据, 而验证是否符合条件时又要用到%,会冲突。

  1. cout 会以科学计数法输出浮点数,而fixed会强制输出小数格式。

  2. std::setprecision(n)

    • 它会设置小数点后保留的位数。

    • 如果n小于浮点数的实际小数位数,多余的位数会被截断(不会四舍五入)。

    • 如果n大于浮点数的实际小数位数,多余的位数会显示为0。

#include <bits/stdc++.h>
using namespace std;

int main() {
    long long t = 1, x = 343720, y = 233333;

    // 找到满足条件的最小 t
    while (1) {
        if ((15 * t) % x == 0 && (17 * t) % y == 0)
            break;
        t++;
    }

    // 计算路径长度
    double path_length = 2 * sqrt(15 * 15 * t * t + 17 * 17 * t * t);

    // 四舍五入到两位小数
    double ans = round(path_length * 100) / 100;

    // 输出结果
    cout << fixed << setprecision(2) << ans << endl;

    return 0;
}

相关文章:

  • TensorFlow v2.16 Overview
  • JDK源码系列(一)Object
  • Kubernetes控制平面组件:APIServer 基于 引导Token 的认证机制
  • C#上位机--选择语句(switch)
  • Typora软件(Markdown编辑器)详细安装教程(附补丁包)2025最详细图文教程安装手册
  • 打开Firefox自动打开hao360.hjttif.com标签解决方案
  • Resource not found: roslaunchROS path [0]=/opt/ros/noetic/share/ros
  • DeepSeek模型量化
  • 第一个CMAKE项目hello cmake
  • C++ 设计模式-解释器模式
  • Vue2 和 Vue3 的区别
  • 高级推理的多样化推理与验证
  • 前端(AJAX)学习笔记(CLASS 3):AJAX原理
  • 2025年度福建省职业院校技能大赛中职组“网络建设与运维”赛项规程模块三
  • 从Revit建模软件的“编辑”操作分析:构件与编辑 = 数据结构与算法
  • 【排版教程】如何在Word/WPS中优雅的插入参考文献
  • 鸿蒙-做一个简版的富文本解析控件
  • Docker+Kubernetes_第一章_Docker入门
  • Spring Boot文件上传
  • 设备树及gpio子系统及ioctl控制及字符设备驱动及内核模块编程事项仨LED灯说点就点说灭就灭
  • 安徽凤阳县明中都鼓楼楼宇顶部瓦片部分脱落,无人员伤亡
  • 上昆“学馆制”10年,完成300出折子戏和20台大戏传承
  • 第十届青春文学奖揭晓,梁晓声获特别奖
  • 十年牢狱倒计时,一名服刑人员的期待与惶恐
  • 上海:到2027年,实现近海航线及重点海域5G网络高质量覆盖
  • 俄乌直接谈判结束,乌称“毫无成果”