专栏文章
题解:UVA11715 Car
UVA11715题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mipek8r5
- 此快照首次捕获于
- 2025/12/03 10:43 3 个月前
- 此快照最后确认于
- 2025/12/03 10:43 3 个月前
题目大意
已知汽车的初速度 、加速度 、时间 、末速度 、位移 中的部分值,要求根据输入组合计算出缺失的变量。
题目讲解
这道题就是一道朴素的语法题,主要考点是高中物理的匀变速直线运动公式。我们首先要知道:
-
速度公式(已知初速度、加速度、时间,求末速度):
-
位移公式(已知初速度、加速度、时间,求位移):
-
速度-位移关系式(不含时间):
-
平均速度求位移:
那我们知道这些公式以后,就可以通过这些公式,计算出题目需要得出的变量。
题目中四种情况的解法
情况 1(给定 ):
- 求 :用速度公式 。
- 求 :用平均速度公式 。
情况 2(给定 ):
- 求 :用速度公式 。
- 求 :用速度-位移关系式 。
情况 3(给定 ):
- 求 :用速度-位移关系式 。
- 求 :用速度公式 。
情况 4(给定 ):
- 求 :用速度-位移关系式 。
- 求 :用速度公式 。
那么接下来就可以很简单地完成编码了。
参考代码
CPP#include<bits/stdc++.h>
#define int long long
#define Rint register int
#define fast_running ios::sync_with_stdio(false),std::cin.tie(0),std::cout.tie(0)
using namespace std;
signed main() {
fast_running;
int op, cnt = 0;
double t1, t2, t3;
while (cin >> op && op != 0) {
++cnt;
cout << "Case " << cnt << ": ";
cin >> t1 >> t2 >> t3;
if (op == 1) {
double u = t1, v = t2, t = t3;
cout << fixed << setprecision(3) << 1.0 * (v + u) / 2 * t << ' ';
cout << fixed << setprecision(3) << 1.0 * (v - u) / t << '\n';
} else if (op == 2) {
double u = t1, v = t2, a = t3;
cout << fixed << setprecision(3) << 1.0 * (v * v - u * u) / (2 * a) << ' ';
cout << fixed << setprecision(3) << 1.0 * (v - u) / a << '\n';
} else if (op == 3) {
double u = t1, a = t2, s = t3;
double v=1.0 * sqrt((u * u) + (2 * a * s));
cout << fixed << setprecision(3) << v << ' ';
cout << fixed << setprecision(3) << 1.0 * (v - u) / a << '\n';
} else if (op == 4) {
double v = t1, a = t2, s = t3;
double u=1.0 * sqrt((v * v) - (2 * a * s));
cout << fixed << setprecision(3) << u << ' ';
cout << fixed << setprecision(3) << 1.0 * (v - u) / a << '\n';
}
}
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...