Generowanie ułamków ciągłych dla pierwiastków kwadratowych
Napisałem ten kod do generowania ciągłej części pierwiastka kwadratowego N.
Ale zawodzi, gdy N = 139.
Wyjście powinno być{11,1,3,1,3,7,1,1,2,11,2,1,1,7,3,1,3,1,22}
Podczas gdy mój kod daje mi ciąg 394 terminów ... z których kilka pierwszych jest poprawnych, ale gdy osiągnie 22, daje 12!
Czy ktoś może mi z tym pomóc?
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);