728x90
https://www.acmicpc.net/problem/1297
1. 문제 설명
TV 대각선의 길이, 높이 비율, 너비 비율이 주어졌을 때 높이의 길이와 너비의 길이를 출력한다.
소수점이 나올 경우에는 그 수보다 작으면서 가장 큰 정수로 출력한다 ex) 1.7 - > 1
높이의 길이를 height * x(비율), 너비의 길이를 width*x, 대각선의 길이를 len이라 하면 피타고라스 정리의 의하여
(height*x)^2+(width*x)^2=len^2
(height^2+width^2)*x^2=len^2
x=len/(height^2+width^2)^(1/2)
따라서 높이의 길이와 너비의 길이는, 입력받은 높이 비율, 너비 비율 * x를 한 값에서 소수점 아래를 버린 값이기 때문에 계산 결과 앞에 (int)를 붙여 강제로 int로 만들어 소수점을 버려 출력한다.
2. 코드
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int len,height,width;
cin >> len >> height >> width;
cout << (int)(len/sqrt(height*height+width*width)*height) << " " <<(int)(len/sqrt(height*height+width*width)*width)<<"\n";
return 0;
}
728x90
'알고리즘' 카테고리의 다른 글
[C++]백준 17174번: 전체 계산 횟수 (0) | 2020.05.27 |
---|---|
[C++]백준 1237번: 정ㅋ벅ㅋ (0) | 2020.05.26 |
[C++]백준 10988번: 팰린드롬인지 확인하기 (0) | 2020.05.24 |
[C++]백준 1032번: 명령 프롬프트 (0) | 2020.05.24 |
[C++]백준 14916번: 거스름돈 (0) | 2020.05.22 |