나는 프로그래밍 콘테스트 시스템에서 몇 가지 문제를 해결하려고 노력하고 있으며, 2 포인트 거리 문제를 해결하고 있는데, 왜 내 코드가 모든 제출물의 1181º에 순위가 매겨 졌는지 이해할 수 없습니다.어떻게이 C 코드를 다른 것보다 빨리 얻을 수 있습니까?
어떻게 코드를 빠르게 처리 할 수 있습니까?
#include <stdio.h>
#include <math.h>
int main(){
register unsigned int x1,x2,y1,y2;
scanf("%i %i %i %i", &x1,&y1,&x2,&y2);
printf("%.4f", sqrt(pow(x2-x1,2) + pow(y2-y1, 2)));
}
변수를 레지스터에 넣는 것이 그렇게 빠른 것은 아닙니다. 반면에 수학 함수는 매우 느립니다. 그리고'% u'를 사용하여'unsigned int'를 검사하십시오. – Kninnug
[빠른 근사 거리 함수] (http://www.flipcode.com/archives/Fast_Approximate_Distance_Functions.shtml) –
우선, 당신은 아마도'scanf'를 없애고 싶을 것입니다. 그런 다음 수학 함수도 제거하십시오. 그런 다음 [빠른 근사 공식] (http://mathforum.org/kb/thread.jspa?threadID=48233&messageID=170470)을 사용하십시오. –