

c++ nha
Câu hỏi: kiểm tra một số có phải là số fibonacci không
Không dùng các hàm phức tạp
Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
`color(#FFFFFFff)(H)color(#E7E7E7ff)(o)color(#CFCFCFff)(r)color(#B7B7B7ff)(i)color(#9F9F9Fff)(z)color(#878787ff)(o)color(#6F6F6Fff)(n)`
// Horizon
#include <bits/stdc++.h>
using namespace std;
bool cp(long long x) {
long long s = sqrt(x);
return (s * s == x);
}
bool f(long long n) {
return cp(5*n*n+4) || cp(5*n*n-4);
}
int main() {
long long n; cin >> n;
if (f(n)) cout << "YES";
else cout << "NO";
}
- Số thuộc dãy Fib khi và chỉ khi một trong hai biểu thức: `5n^2 +4` hoặc `5n^2 -4` là số chính phương.
Hãy giúp mọi người biết câu trả lời này thế nào?

//by nsvdlvt
#include <iostream>
#include <cmath>
using namespace std;
bool scp(int m)
{
int n = static_cast<int>(sqrt(m));
return (n * n == m);
}
bool fibo(int m)
{
return scp(5 * m * m + 4) || scp(5 * m * m - 4);
}
int main() {
int n;
cin >> n;
if (n < 0)
{
return 0;
}
if (fibo(n))
{
cout << n << "YES" << endl;
}
else
{
cout << n << "NO" << endl;
}
return 0;
}
Hãy giúp mọi người biết câu trả lời này thế nào?

Bảng tin
366
3688
373
cp là chính phương à bn
927
2097
635
yep
366
3688
373
còn f
366
3688
373
fibonacci à bn
927
2097
635
uk