Em đang tìm số fibo nhỏ nhất >= tmp, với F, tmp đều là std::string
Hàm lessThan trả về true nếu F[i] < tmp
Hàm add() để cộng 2 string lại (tất nhiên là string chứa các chữ số)
while(lessThan(F[i], tmp))
{
++i;
F[i] = add(F[i - 1], F[i - 2]);
//std::cout << F[i] << '\n' << tmp << '\n';
}
Khi em để tmp là 1 số lớn (1000 chữ số 9) thì em tính F. Mọi chuyện vẫn ổn cho tới bước lặp cuối cùng, F[i] tính ra được là 24314… (ví dụ vậy), còn tmp đang mang giá trị 1000 chữ số 9 thì bỗng nhiên đổi thành 24314…
Mọi người cho em hỏi là tại sao lại vậy ?