ratio 문제를 수십번 오답처리를 한 후 도저히 원인을 찾지 못하여 질문합니다. 랜덤을 넣어서 돌려보기도 하고 여러가지 방법을 사용해 보았지만, 어떤 경우 오답을 출력하는지 아직까지 파악을 하지 못하였습니다. 혹시 오답을 출력하는 원인을 알 수 있을까요?
#include <cstdio>
#include <math.h>
#pragma warning(disable : 4996)
int main(){
int tc;
scanf("%d", &tc);
for (int i = 0; i < tc; i++){
int id;
int n, m;
int x;
scanf("%d %d", &n, &m);
id = m / (float)n * 100 + 1;
if (id < 100){
x = ceil(((float)(id*n - 100 * m)) / (100 - id));
printf("%d\n", x);
}
else if (m == n)
printf("-1\n");
else
printf("-1\n");
}
return 0;
}
답변 감사합니다 1000 689를 입력하였을때 4가 나오는것으로 보아 올바르게 작동하는것 같습니다 소숫점에서 int로 바뀔때 자동 버림이 되어 68.9일때 68이 입력되도록 코딩하였는데 무엇이 잘못인지 잘 모르겠습니다 가끔 double로 하면 27이 들어와야할 것이 26.99999로 들어가 26으로 인식하는 오류가 발생하는것도 float를 이용하여 수정하였는데... 원인을 잘 모르겠습니다. 관심과 답변 감사합니다.
acecic82
ratio 문제를 수십번 오답처리를 한 후 도저히 원인을 찾지 못하여 질문합니다. 랜덤을 넣어서 돌려보기도 하고 여러가지 방법을 사용해 보았지만, 어떤 경우 오답을 출력하는지 아직까지 파악을 하지 못하였습니다. 혹시 오답을 출력하는 원인을 알 수 있을까요?
10년 전