Генерация непрерывных дробей для квадратных корней
Я написал этот код для генерации продолжения дроби квадратного корня N.
Но он терпит неудачу, когда N = 139.
Выход должен быть{11,1,3,1,3,7,1,1,2,11,2,1,1,7,3,1,3,1,22}
Хотя мой код дает мне последовательность из 394 терминов ... из которых первые несколько терминов верны, но когда он достигает 22, он дает 12!
Может ли кто-нибудь помочь мне с этим?
vector <int> f;
int B;double A;
A = sqrt(N*1.0);
B = floor(A);
f.push_back(B);
while (B != 2 * f[0])) {
A = 1.0 / (A - B);
B =floor(A);
f.push_back(B);
}
f.push_back(B);