蓝桥杯2024年第十五届省赛真题-小球反弹

在这里插入图片描述
以下两个解法感觉都靠谱,并且网上的题解每个人答案都不一样,目前无法判断哪个是正确答案。

方法一:模拟
代码参考博客

#include <iostream>
#include <cmath>
#include <vector>
 
using namespace std;
 
int main() {
    const int maxX = 343720;
    const int maxY = 233333;
    const int vx = 15;
    const int vy = 17;
 
    int x = 0, y = 0;
    int time = 0;
    double totalDistance = 0;
    bool xPositive = true, yPositive = true;
 
    while (true) {
    	//根据方向判断是+距离还是-距离
        x += xPositive ? vx : -vx;
        y += yPositive ? vy : -vy;
        time++;
        //移动的距离
        double segmentLength = sqrt(vx * vx+ vy * vy);
        // 检查是否碰到边界并反弹
        if (x > maxX || x < 0) {
            xPositive = !xPositive; // 反转X方向
            x = (x > maxX) ? maxX : 0; // 将坐标调整到边界上
        }
        if (y > maxY || y < 0) {
            yPositive = !yPositive; // 反转Y方向
            y = (y > maxY) ? maxY : 0; // 将坐标调整到边界上
        }
 
        // 累加路径长度
        totalDistance += segmentLength;
 
        // 假设当粒子回到原点时停止模拟
        if (x == 0 && y == 0) {
            break;
        }
    }
 
    // 输出总路径长度
    cout << "总路径为:" << totalDistance << endl;
 
    return 0;
}

答案:14261800000

方法二:数学物理题
把速度分解成x方向和y方向,已知x方向来回一趟的时间是2343720/15,y方向来回一趟的时间是2233333/17,已知小球要回到原点,即x和y方向要同时回到原点,时间就是2343720/15和2233333/17的整数倍,即最小公倍数。就能把时间t求出来,然后乘以速度sqrt(15^2+17^2)就是总路程。

#include <bits/stdc++.h>
using namespace std;
int main() {
    int a = 2*343720/15;
    int b = 2*233333/17;
    int i = 1;
    while(i*a%b!=0){
        i++;
    }
    double t = i*a;
    double s = t*sqrt(pow(15, 2)+pow(17, 2));
    cout<<fixed<<setprecision(2)<<s<<endl;
    return 0;
}

输出:28520969829.65

复习:最大公因数GCA(Greatest Common Divisor)和最小公倍数LCM(Least Common Multiple)

int my_gcd(int a,int b){
    if(a%b==0)return b;
    else return my_gcd(b, a%b);
}

int my_lcm(int a,int b){
    int i=1;
    while(i*a%b!=0)i++;
    return i*a;
}

相关推荐

  1. 分布式队列 - 2024

    2024-04-22 23:08:03       13 阅读
  2. 2023----棋盘

    2024-04-22 23:08:03       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-22 23:08:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-22 23:08:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-22 23:08:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-22 23:08:03       18 阅读

热门阅读

  1. CentOS常见命令详解

    2024-04-22 23:08:03       13 阅读
  2. vueelementui+tabs选项卡样式更改-内容待递增

    2024-04-22 23:08:03       11 阅读
  3. 安卓平台下OkHttp3网络库的全面探讨与实践

    2024-04-22 23:08:03       12 阅读
  4. python selenium 获取伪类

    2024-04-22 23:08:03       13 阅读
  5. SCP收容物081~09

    2024-04-22 23:08:03       17 阅读
  6. 设计模式详解(十五)——模板方法模式

    2024-04-22 23:08:03       14 阅读
  7. git 简单使用

    2024-04-22 23:08:03       12 阅读
  8. php ArrayAccess

    2024-04-22 23:08:03       13 阅读
  9. 乾坤微前端js沙箱机制

    2024-04-22 23:08:03       11 阅读
  10. 面试题:String,你学会了吗?

    2024-04-22 23:08:03       9 阅读