코드가 좀 더럽긴 합니다.. 깊게생각하려니 좀 머리아파서 if else로 떡칠했어요
그래도 로직적인부분은 다맞다고생각했는대 자꾸 오답뜨네여
밑변과 높이를 이용해서 각도구하고 1사분면, 2사분면, 3사분면, 4분면으로 분기해서 그 각도에따라 값을 넣어줬거든요..
마지막엔 빗변의 길이를 비교해서 곱연산 해줬는데계속오답뜨네요ㅜㅜ
뭘 간과한건지 지적부탁드립니다..
#include <stdio.h>
#include <math.h>
int main()
{
int a,b;
double c,A;
int cnt;
int r1, r2, r3, r4, r5;
int score=0, res=0;
scanf("%d %d %d %d %d", &r1, &r2, &r3, &r4, &r5);
scanf("%d", &cnt);
for(int i=0; i<cnt; i++)
{
scanf("%d %d",&a, &b);
c=(double)sqrt((a*a)+(b*b)); // 빗변 (피타고라스의 정리)
A=(double)abs(b)/(abs(a)+abs(b))*90; // 90도를 기준으로 A의 비율
if(a>=0 && b>=0)
{
if(A>=81) score=20;
else if(A>=63) score=1;
else if(A>=45) score=18;
else if(A>=27) score=4;
else if(A>=9) score=13;
else score=6;
}
else if(a<0 && b>=0)
{
if(A>=81) score=20;
else if(A>=63) score=5;
else if(A>=45) score=12;
else if(A>=27) score=9;
else if(A>=9) score=14;
else score=11;
}
else if(a<0 && b<0)
{
if(A>=81) score=3;
else if(A>=63) score=19;
else if(A>=45) score=7;
else if(A>=27) score=16;
else if(A>=9) score=8;
else score=11;
}
else if(a>=0 && b<0)
{
if(A>=81) score=3;
else if(A>=63) score=17;
else if(A>=45) score=2;
else if(A>=27) score=15;
else if(A>=9) score=10;
else score=6;
}
if(c<=r1) res+=50;
else if(c>=r2 && c<=r3) res+=(score*3);
else if(c>=r4 && c<=r5) res+=(score*2);
else if(c>r5);
else res+=score;
}
printf("%d\n", res);
}
// 78 56 34 12
이 소름돋는 코드는 무엇입니까?
C++로 해보세요
씨플플은 쓸줄몰라서요ㅜ
와시발 if문 씹극혐 머리좀 더 굴려봐..