#include <string>
#include <vector>
using namespace std;
int solution(int num1, int num2) {
return ((double) num1 / (double) num2) * 1000;
}
ㄴ 위 문제에 대한 풀이.
C++ 에서의 나누기
C와 C++은 int형 정수로 나누기를 실행하면 소수점이 나오지 않는다.
int형의 나누기를 할 때 소수점을 얻으려면 double형으로 형변환을 해주어야 한다. (float, long double도 가능)
int a = 3;
int b = 2;
double c = a/b; // 1
double d = (double) a / (double) b; // 1.5
cout << 3/2; // 1 출력
cout << 3/2.0; // 1.5 출력
cout << 3/2.; // 1.5 출력
왜 c는 1.5가 아닌 1이 나왔을까? C와 C++에서 나누기를 할 때는 연산이 끝나고 소수점 아래를 버리고 출력하기 때문이다.
소수점을 가진 double형과 같은 결과를 얻고 싶다면, 나눌 값이나 나누어질 값이 double형이어야 한다.
'코딩테스트' 카테고리의 다른 글
[백준][Python] 1931번 회의실 배정 문제 해설, 정답코드 (그리디 알고리즘) (1) | 2022.10.08 |
---|---|
[프로그래머스][Python] 약수의 개수와 덧셈 (약수의 개수가 짝수인지 홀수인지 판별하기) (0) | 2022.10.07 |
[프로그래머스][C++] 배열의 평균값 (vector 평균 구하기) (0) | 2022.10.01 |
[프로그래머스][Python] 핸드폰 번호 가리기 (0) | 2022.10.01 |
[프로그래머스][Python] 정수 내림차순으로 배치하기 (0) | 2022.09.25 |