Problem Description
Zhang3 a participant of IPhO (Immortal Physics Olympiad). The 0th problem in the contest is as follows.
There are two balls that weigh a kg and b kg respectively. They can be regarded as particles in this problem, as they are small enough. At the very beginning (i.e. t=0), the distance between two balls is d km, and both of them are not moving.
Assuming that only gravitation works in this system (no other objects or other forces considered). The two balls has started moving since t=0. Your task is to calculate the distance between them when t=t0 (s).
Help Zhang3 solve the problem!
The following information might help when solving the problem.
-
Universal gravitation formula: F=G⋅m1⋅m2/r2
-
Gravitational constant: G=6.67430×10−11m3/(kg⋅s2)
Input
The first line of the input gives the number of test cases T(1≤T≤100). T test cases follow.
For each test case, the only line contains four integers a,b,d,t0(1≤a,b,d,t0≤100), representing the mass of the two balls, the initial distance between them, and how much time the balls move.
It is guaranteed that two balls will not collide within (t0+1) seconds.
Output
For each test case, print a line with a real number x, representing that the distance is x km.
Your answers should have absolute or relative errors of at most 10−6.
Sample Input
3
1 2 3 4
7 73 7 68
100 100 1 100
Sample Output
2.99999999999999999982
6.99999999999999974807
0.99999999999993325700
题意:
空间只考虑重力,两小球初始距离为r,质量为a,b。求t时间后两小球距离
思路:
假题。。。因为数据很小,所以几乎没影响。
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;
typedef long long ll;
const int maxn = 1e5 + 7;
const int mod = 1e9 + 7;
const double G = 6.67430 * 1e-11;
int main() {
int T;scanf("%d",&T);
while(T--) {
double a,b,d,t0;scanf("%lf%lf%lf%lf",&a,&b,&d,&t0);
printf("%.10f\n",d);
}
return 0;
}