Emingis a contest hold by WHUACM training team. The aim is to select new members ofthe team.
Usually, the first problem is a very simpleproblem such as “a+b problem”. But this time, Xioumu is tired of this kind of problem,he decide to solve “a and b problem”.
Give you the result of a + b and a^2 – b^2,please output the result of a and b.
Input
There are several test cases. For each casethere are two double numbers indicating a+b and a^2-b^2. You may assume that a+bwill not be zero.
Output
For each case please output the result of aand b in one line, rounded to 2 decimal places.
SampleInput
3 -3
SampleOutput
1.00 2.00
试题分析:这道题意思是给了a+b和a^2 – b^2的值,要求a和b的值,如果直接暴力枚举的话肯定会超时,所以运用数学上的运算就可以了,给(a+b)平方再加上 a^2 – b^2,再除以2*(a+b),得出a的值,则可得b的值。下面是代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
using namespace std;
int main() {
double A, B, C;
while(scanf("%lf%lf", &A, &B) == 2) {
C = B / A;
printf("%.2lf %.2lf\n", (A + C) * 0.5, (A - C) * 0.5);
}
return 0;
}