ratio 문제에 관한 질문 acecic82 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; } 8년 전
3개의 댓글이 있습니다. ydk1130 제가 돌려볼 상황이 안되고, 문제를 풀어본것도 아니지만 혹시 이런경우의 수도 생각을 해보셨는지 궁금해서 올립니다. 68.9%의 승률인데 68%라고 나온다고 문제에 적혀있는데 0.1%의 승률을 올리기 위해서 68%->69%의 판수를 계산을 하고 있는게 아니신지 궁금합니다^^ 68.9% -> 69% 랑 68% -> 69%는 차이가 크죠! 이런 경우에 대하여 계산이 안되는 것 같아요.. 안풀어보고 돌려보지도 않아서 확실한 답을 말씀드리긴 어려우나 이러한 경우가 계산이 안되고 있는것같아서 올려보았습니다! 8년 전 link acecic82 답변 감사합니다 1000 689를 입력하였을때 4가 나오는것으로 보아 올바르게 작동하는것 같습니다 소숫점에서 int로 바뀔때 자동 버림이 되어 68.9일때 68이 입력되도록 코딩하였는데 무엇이 잘못인지 잘 모르겠습니다 가끔 double로 하면 27이 들어와야할 것이 26.99999로 들어가 26으로 인식하는 오류가 발생하는것도 float를 이용하여 수정하였는데... 원인을 잘 모르겠습니다. 관심과 답변 감사합니다. 8년 전 link wee x 값이 충분히 큰 수이면 int Limit에 걸릴듯 합니다. n, m 값도 마찬가지고요 8년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
acecic82
ratio 문제를 수십번 오답처리를 한 후 도저히 원인을 찾지 못하여 질문합니다. 랜덤을 넣어서 돌려보기도 하고 여러가지 방법을 사용해 보았지만, 어떤 경우 오답을 출력하는지 아직까지 파악을 하지 못하였습니다. 혹시 오답을 출력하는 원인을 알 수 있을까요?
8년 전