December 23, 2018
Square numbers in the array
Threads: For an array of n integers. Find and print out the square numbers in the array.
Input: The first line is an integer n. The second line 2 n is an integer array, of numbers separated by spaces.
Output: A multi-line numbers separated by spaces are square numbers in the array. These numbers are in order as the order in the original array. If the sequence does not have square numbers, in ra “NOT FOUND”
For example:
input: 3 4 3 2 output: 4
You are not logged in? Log in to Submit Now!
12 Comments
Add a Comment
You must be logged in to post a comment.
a oi, s e nộp bài tới text 2 running xong nó mất luôn vậy ạ
Thử lại xem sao.
Thầy ơi em góp ý 1 little: test case của thầy có đoạn test cả số 0 => nhận nó là SCP. Nhưng SCP ko có số 0 thầy nha ^^. Định nghĩa: SCP là sốmà chỉ khi bình phương căn bậc 2 của nó trở thành hình vuông. Nguồn gốc của từ sqrt = square root, bắt nguồn từ hình vuông.
Ah, Cảm ơn em nhé. Mình đã sửa lại.
honey, sao test 4 của em nó chạy ở trong code::blocks thì nó ra kết quả đúng mà ở đây nó lại sai ạ, em copy y chang từ code::blocks ra rồi ạ
Có thể lỗi trong quá trình chạy ở một số test đặc biệt nhé.
oh admin, bài của em là như thế này, em để
int kt(int n)
{ int m=sqrt(n);
for(int i=1;i<=m;i++)
{
if(m*i==n)
return 1;
}
return 0;
}
như thế này thì kết quả đúng
-khi em để return 0 trước return 1:
int kt(int n)
{ int m=sqrt(n);
for(int i=1;i<=m;i++)
{
if(m*i!=n)
return 0;
}
return 1;
}
như thế này thì sai
****(khi em post bài lên nó hay mất chữ, nên ad thêm chữ giùm em)
Bạn chạy bằng tay đi sẽ thấy sai ở đâu.
bằng tay là sao ad
Là chạy bằng tay ấy. Viết các bước, các giá trị của biến ra giấy từng bước một.
góp ý về lời giải:
Ở hàm check của ad có đoạn:
—
int m = (int)sqrt(n);
if(n > 0 && m*m == n) return 1;
—-
Theo tôi ad nên check n>0 trước rồi mới thực hiện phép khai căn.
thân,
Thank you.