1 条题解

  • 0
    @ 2025-10-30 13:44:14

    思路分析

    1. 任务拆解:

    • 读取落地次数n
    • 计算球第n次落地时经过的总路程
    • 计算第n次反弹的高度
    • 按要求格式输出结果

    2. 关键点分析:

    • 初始高度为100米
    • 每次落地后反弹高度为前一次的一半
    • 总路程包括下落和反弹的过程
    • 第n次落地时,经过了n次下落和(n-1)次反弹
    • 第n次反弹高度是第n次落地后反弹的高度

    3. 步骤规划:

    • 设置初始高度h=100,总路程s=0
    • 读取落地次数n
    • 初始化计数器c=1
    • 循环模拟每次落地过程:
      • 累加下落高度到总路程
      • 如果是第n次落地,输出总路程并跳出循环
      • 计算反弹高度(h/2)
      • 累加反弹高度到总路程
      • 计数器加1
    • 输出第n次反弹高度

    4. 代码对应:

    • double h=100,s=0; cin>>n; → 设置初始高度并读取落地次数
    • int c=1; → 初始化落地次数计数器
    • while(true) → 无限循环模拟落地过程
    • s+=h; → 累加下落高度
    • if(c==n) → 判断是否第n次落地
    • cout<<"length="<<fixed<<setprecision(4)<<s<<endl; → 格式化输出总路程
    • h/=2.0; → 计算反弹高度
    • s+=h; → 累加反弹高度
    • c++; → 落地次数加1
    • cout<<"high="<<fixed<<setprecision(4)<<h/2.0; → 格式化输出反弹高度
    • 1

    信息

    ID
    1380
    时间
    1000ms
    内存
    12MiB
    难度
    4
    标签
    (无)
    递交数
    316
    已通过
    144
    上传者