Open utterances-bot opened 3 years ago
@samreachyan cái chỗ ans là n*m phần tử ạ
@nhanphandz Thay vì phải vt hàm thì bn dùng sort() cx đc
sao mình test trên live ide cho kết quả đúng và nộp bài wrong ans
@Nvcuonghandsome mình nhập phần tử vào mảng 2 chiều, rồi check nếu là số chính phương thì add vào 1 mảng mới (ở đây, mình dùng vector, dùng mảng 1 chiều thường cũng được). Sau đó mình sort mảng mới theo thứ tự tăng dần, rồi in ra các phần tử (nếu trùng thì bỏ qua). Đây là code mình viết dù test trên live ide đúng, nhưng chỉ đúng test case cuối :<
```cpp
#include
@Nvcuonghandsome mình nhập phần tử vào mảng 2 chiều, rồi check nếu là số chính phương thì add vào 1 mảng mới (ở đây, mình dùng vector, dùng mảng 1 chiều thường cũng được). Sau đó mình sort mảng mới theo thứ tự tăng dần, rồi in ra các phần tử (nếu trùng thì bỏ qua). Đây là code mình viết dù test trên live ide đúng, nhưng chỉ đúng test case cuối :< mình làm ra rồi nè bạn. Do lúc xóa phần tử hàm bị sai
@Nvcuonghandsome bạn xem code mình sai ở đâu được không
@Nvcuonghandsome bạn xem code mình sai ở đâu được không
mình học C chứ chưa học tới C++ nên k hiểu. chủ yếu là hàm xóa giá trị bị trùng ví dụ 4 4 9 thì mình dùng hàm xóa bớt số 4 thứ 2, gán số 4 thứ 2 = số 9, giảm độ dài chuỗi đi 1. in ra 4 9
@ngocle7 Bn có thể tham khảo code mik ở https://luyencode.net/status/fae475b9c3c329a71be1c916da02af21?problem=MT06
test cuối là "NOT FOUND"
Đây là lời giải của mình đã AC. Nếu bạn đã cố gắng mà chưa làm được thì có thể tham khảo lời giải của mình. (C++) Chú ý <> chỗ include. Mình biết code mình hơi dài nhưng up cho mọi người tham khảo. Mình mới học nên không biết viết sao cho ngắn chỉ biết nghĩ sao làm vậy thôi ^^
#include < iostream > #include < cmath > #define MAX_ROW 100 #define MAX_COLUMN 100 void input_and_get_square_nubmer(int arr[][MAX_COLUMN], int m, int n, int brr[], int &k); int check_square_number(int number); void sort(int arr[], int n); void output_square_number_array(int arr[], int n); void delete_element(int arr[], int &n, int position); int main() { int m, n; std::cin >> m >> n; int matrix[MAX_ROW][MAX_COLUMN]; int square_number_array[MAX_COLUMN]; // mảng để chứa số chính phương int k = 0; // đếm số phần tử của mảng chứ số chính phương input_and_get_square_nubmer(matrix, m, n, square_number_array, k); sort(square_number_array, k); if (k == 0) { std::cout << "NOT FOUND"; } else { output_square_number_array(square_number_array, k); } return 0; } void sort(int arr[], int n) { for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j < n; j++) { if (arr[i] > arr[j]) { std::swap(arr[i], arr[j]); } } } } int check_square_number(int number) { float result = sqrt(number); if (sqrt(number) == result) { return 1; } return 0; } void input_and_get_square_nubmer(int arr[][MAX_COLUMN], int m, int n, int brr[], int &k) // nhap va kiem tra xem co so chinh phuong khong neu co thi cho vao mang 1 chieu { for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { std::cin >> arr[i][j]; if (check_square_number(arr[i][j]) == 1) { brr[k] = arr[i][j]; k++; } } } } void delete_element(int arr[], int &n, int position) // hàm xóa 1 phần tử trong mảng { for (int i = position; i < n; i++) { arr[i] = arr[i + 1]; } n--; } void output_square_number_array(int arr[], int n) // hàm này là hàm xóa số trùng trong mảng nhưng mình có chỉnh lại để thành hàm xuất luôn để khỏi lặp nhiều { for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if (arr[i] == arr[j]) { delete_element(arr, n, j); j--; } } std::cout << arr[i] << ' '; } }
code cho b nao can tham khao https://anotepad.com/notes/2rweq6ww
EZ :)
Đây là lời giải của mình đã AC. Nếu bạn đã cố gắng mà chưa làm được thì có thể tham khảo lời giải của mình.
```cpp
#include
test 2, 3 là gì vậy mn
Đây là lời giải JAVA của mình đã AC. Nếu bạn đã cố gắng mà chưa làm được thì có thể tham khảo lời giải của mình.
```
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
class Main {
public static void main (String[] args){
Scanner sc = new Scanner(System.in);
Set
Đây là lời giải của mình đã AC. Nếu bạn đã cố gắng mà chưa làm được thì có thể tham khảo lời giải của mình.
#include
1/4
Đây là lời giải của mình đã AC. Nếu bạn đã cố gắng mà chưa làm được thì có thể tham khảo lời giải của mình.
```cpp
#include
Ủa mình sai ở đâu vậy mọi người
#include
Đây là lời giải của mình đã AC. Nếu bạn đã cố gắng mà chưa làm được thì có thể tham khảo lời giải của mình.
```cpp
#include
Cố lên mọi người ^^
```ruby
#include
Đây là lời giải của mình đã AC. Nếu bạn đã cố gắng mà chưa làm được thì có thể tham khảo lời giải của mình.Chúc các bạn thành công!
#include
python cx de
Đây là lời giải của mình đã AC. Nếu bạn đã cố gắng mà chưa làm được thì có thể tham khảo lời giải của mình. Ý tưởng của mình là tìm số chính phương trong mảng A. Sau đó tạo 1 mảng B để thêm các số chính phương đó vào. Rồi sort mảng B cũng như xóa các phần tử trùng sẽ ra được kết quả.
using namespace std;
bool isSquare(int k)
{
int sqrtK=int(sqrt(k));
if (sqrtK*sqrtK==k&&k>0)
return true;
else
return false;
}
void erase(int B[100], int &n, int vitri)
{
for (int i=vitri+1;i<n;i++)
B[i-1]=B[i];
n--;
}
void eraseSimilar(int B[100], int &n)
{
for (int i=0;i<n-1;i++)
{
for (int j=i+1;j<n;j++)
{
if (B[i]==B[j])
{
erase(B,n,j);
i--;
}
}
}
}
int main()
{
int m,n,count=0,index=0;
cin>>m>>n;
int A[m][n];
int B[100]={0};
for (int i=0;i<m;i++)
for (int j=0;j<n;j++)
cin>>A[i][j];
for (int i=0;i<m;i++)
{
for (int j=0;j<n;j++)
{
if (isSquare(A[i][j]))
{
B[index]=A[i][j];
index++;
count++;
}
}
}
sort(B,B+count);
eraseSimilar(B,count);
if (count==0)
cout<<"NOT FOUND";
else
for (int i=0;i<count;i++)
cout<<B[i]<<" ";
}
Tìm số chính phương trong ma trận - Luyện Code Online
https://luyencode.net/problem/MT06