Я пытаюсь решить некоторые проблемы в системе соревнований программирования и решить проблему с двумя точками, я не понимаю, почему мой код был оценен в 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). –