我試圖解決編程競賽系統上的一些問題,並且解決了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's。 – Kninnug
[快速近似距離函數](http://www.flipcode.com/archives/Fast_Approximate_Distance_Functions.shtml) – 2013-07-11 18:16:21
首先,您可能希望擺脫'scanf'。然後,擺脫數學函數。然後,使用[快速近似公式](http://mathforum.org/kb/thread.jspa?threadID=48233&messageID=170470)。 – 2013-07-11 18:17:11