Nói về thuật toán chạy code x^n

Anh (chị) giúp e nói về thuật toán chạy của x^n code này với !

double qPower_n(double x, long n)
{
	// n >= 0
	double result = 1;
	while(n)
	{
		if(n % 2 == 1)
		{
			result = result * x;
		}
		x = x * x;
		n = n / 2;
	}
	return result;
}

Không biết nói gì.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?