KS
Коротше, скажіть мені, будь ласка, на яких числах код зациклиться?
double agm(const double a, const double b)
{
if (a > b) return agm(b, a);
double aLast = 0;
double bLast = 0;
double aNew = a;
double bNew = b;
while (aLast != aNew)
{
aLast = aNew;
bLast = bNew;
aNew = std::sqrt(aLast * bLast);
bNew = (aLast + bLast) / 2;
}
return aLast;
}