

Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
Một cách đơn giản đó là lặp qua tất cả các bộ ba (i, j, k) và kiểm tra xem bộ ba đó có phải bộ ba Pytago hay không.
Độ phức tạp của phương pháp này là O(n^3).
Ngoài ra có một số cách tối ưu để giảm độ phức tạp xuống, nhưng do giới hạn n <= 100 nên ta không cần tối ưu thêm.
$\\$
$\color{green}{\texttt{C}}\color{lightgreen}{\texttt{+}}\color{lightgreen}{\texttt{+}}$
#include <iostream>
using namespace std;
int main() {
freopen("Pytago.inp", "r", stdin);
freopen("Pytago.out", "w", stdout);
int n, c; cin >> n;
for (int i=1; i<=n; ++i) {
for (int j=i+1; j<=n; ++j) {
for (int k=j+1; k<=n; ++k) {
if (i * i + j * j == k * k) {
cout << i << ' ' << j << ' ' << k << '\n';
c = 1;
}
}
}
}
if (!c) cout << -1;
}
$\\$
$\\$
\begin{array}{c|c|c}\color{#ffd710}{\texttt{\{}} \color{#8655d6}{\texttt{\{}}\ \ \color{#8cdcda}{\text{Daoanhviet96}}\ \ \color{#8655d6}{\texttt{\}}} \color{#ffd710}{\texttt{\}}}\end{array}
Hãy giúp mọi người biết câu trả lời này thế nào?
![]()
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
bool found = false;
for (int a = 1; a <= n; a++) {
for (int b = a + 1; b <= n; b++) {
for (int c = b + 1; c <= n; c++) {
if (a * a + b * b == c * c) {
cout << a << " " << b << " " << c << endl;
found = true;
}
}
}
}
if (!found) cout << -1 << 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
3
1
1
anh ơi đây em vote anh ra anh giúp em bài này em vote anh 5 sao
2901
47938
1864
Bài nào cơ :v?
3
1
1
chờ xíu bạn em đăng lên
3
1
1
căn bậc 2 của 2 anh ạ
4
2
1
của em mới đăng đó anh