문제 출처: algospot.com/judge/problem/read/CONVERT
1. 코드
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
int t;
cin >> t;
for(int pk = 1; pk <= t; pk++)
{
double n;
string unit;
cin >> n >> unit;
if (unit == "kg")
{
n *= 2.2046;
unit = "lb";
}
else if (unit == "l")
{
n *= 0.2642;
unit = "g";
}
else if (unit == "lb")
{
n *= 0.4536;
unit = "kg";
}
else if (unit == "g")
{
n *= 3.7854;
unit = "l";
}
cout << fixed; //소수점이하 수 출력
cout.precision(4); //4자리까지
cout << pk << " " << n << " " << unit << endl;
}
}
2. 풀이
문제에서 제공된 단위들에 대한 관계표를 보고 그대로 적용시켜주면 된다. 우선 테스트 횟수를 입력 후 수와 단위를 입력해준다. 그런데 0이라는 결과가 나와도 소수점으로 나오니 double 형으로 수를 받아준다. 그리고 단위 관계표를 보고 해당하는 단위에 대한 변화된 수와 단위를 적용시켜준다.
cout << fixed; //소수점이하 수 출력
cout.precision(4); //4자리까지
그리고 위 코드 2개를 이용하여 0도 소수점이하의 수가 나오게 만들어준다. 그러면 끝이다.
'컴퓨터 > 알고스팟 알고리즘' 카테고리의 다른 글
알고스팟 알고리즘: URI [C++] (0) | 2021.05.22 |
---|---|
알고스팟 알고리즘: HOTSUMMER [C++] (0) | 2021.05.11 |
알고스팟 알고리즘: MISPELL [C++] (0) | 2021.05.07 |
알고스팟 알고리즘: ENCRYPT [C++] (0) | 2021.05.06 |
알고스팟: LECTURE [C++] (0) | 2021.05.05 |