문제를 읽고 정리했다. 배운 강정, 이제는 floor 안 쓰고 몫으로 계산하려 하고있다.
그런데 이 문제는 어쩔 수 없이 루트 떄문에 sqrt를 써야한다.
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double a, b, c, result;
scanf("%lf %lf %lf", &c, &a, &b);
//printf("%lf %lf %lf", c, a, b);
result = sqrt(c*c / (a*a + b*b));
//printf("%lf", result);
printf("%d %d", a*result/1 , b*result/1);
}
계산을 다 double형으로 할거라 바로 double형으로 받았다. 몰랐는데 double형은 %f로 받으면 안 되고 %lf를 써야한다.
이제는 항상 입력받고 입력 잘 받았는지 확인한다. 왜냐면 값이 이상하게 나올 경우 원인 좀 줄일려구..
이렇게 생각했는데 값이 이상하게 나왔다. 나는 1로 나누면 몫이 나올 줄 알았는데 생각해보니 double형은 그냥 나누기가 된다. 그리고 그걸 %d로 출력하려니 값이 다르게 나온것 같다.
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double a, b, c, result;
scanf("%lf %lf %lf", &c, &a, &b);
result = sqrt(c*c / (a*a + b*b));
printf("%d %d", (int)(a*result), (int)(b*result));
}
이렇게 짰다. 그리고 맞았다!
'백준' 카테고리의 다른 글
10768 특별한 날 (0) | 2019.10.02 |
---|---|
16673 고려대에는 공식 와인이 있다 (0) | 2019.10.02 |
2355 시그마 (0) | 2019.10.01 |
10707 수도요금 (0) | 2019.10.01 |
5532 방학 숙제 (0) | 2019.09.30 |