Tìm số chính phương trong mảng JavaScript | Laptrinhcanban.com

Tìm số chính phương trong mảng JavaScript

Hướng dẫn cách tìm số chính phương trong mảng JavaScript. Bạn sẽ học được cách tìm và đếm số chính phương trong mảng JavaScript, cách tìm số chính phương đầu tiên và cuối cùng có trong mảng, cách tìm số chính phương lớn nhất và nhỏ nhất trong mảng JavaScript cũng như thực hiện các phép toán như tính tổng hoặc tính trung bình cộng của các số chính phương trong mảng JavaScript sau bài học này.

Tìm và đếm số chính phương trong mảng JavaScript

Để tìm và đếm số chính phương trong mảng JavaScript, chúng ta cần phải kiểm tra từng phần tử trong mảng có phải là số chính phương hay không. Và nếu phải thì tiến hành đếm hoặc in phần tử đó là xong.

Để kiểm tra một phần tử trong mảng có phải là số chính phương hay không, chúng ta sẽ dùng tới phương pháp mà Kiyoshi đã hướng dẫn trong bài:Kiểm tra số chính phương trong JavaScript

Và chúng ta viết chương trình tìm và đếm số chính phương trong mảng JavaScript như sau:

function find_square_number(n){
//flag = 1 => số chính phương
//flag = 0 => không phải số chính phương

let flag = 0;

//Tìm số bất kỳ nhỏ hơn hoặc bằng n mà bình phương bằng n
let i = 0;
while(i <= n){
if( Math.pow( i, 2) == n ) {
flag = 1;
break; /*Chỉ cần tìm thấy 1 ước số là đủ và thoát vòng lặp*/
}
i++;
}

return flag;
}


let array = [5, 4, 16, 2, 8, 7, 3, 9];


let count = 0;
/*Tìm và đếm số chính phương trong mảng JavaScript*/
console.log( "Cac so chinh phuong trong mang: ");
for (let i = 0; i < array.length; ++i) {
let check = find_square_number(array[i]);
if (check == 1) { //Tìm thấy số chính phương
console.log( array[i]+ " ");
++count;
}
}

console.log( "\nSo so chinh phuong trong mang: "+ count);

Kết quả phép tìm và đếm số chính phương trong mảng JavaScript:

Cac so chinh phuong trong mang: 
4
16
9

So so chinh phuong trong mang: 3

Tính tổng các số chính phương trong mảng JavaScript

Để tính tổng các số chính phương trong mảng JavaScript, chúng ta chỉ cần tìm các số chính phương trong mảng bằng phương pháp Kiyoshi đã trình bày, sau đó tính tổng của chúng là xong.

Và chúng ta viết chương trình tính tổng các số chính phương trong mảng JavaScript như sau:

function find_square_number(n){
//flag = 1 => số chính phương
//flag = 0 => không phải số chính phương

let flag = 0;

//Tìm số bất kỳ nhỏ hơn hoặc bằng n mà bình phương bằng n
let i = 0;
while(i <= n){
if( Math.pow( i, 2) == n ) {
flag = 1;
break; /*Chỉ cần tìm thấy 1 ước số là đủ và thoát vòng lặp*/
}
i++;
}

return flag;
}


let array = [5, 4, 16, 2, 8, 7, 3, 9];


let sum = 0;
/*Tìm và đếm số chính phương trong mảng JavaScript*/
console.log( "Cac so chinh phuong trong mang: ");
for (let i = 0; i < array.length; ++i) {
let check = find_square_number(array[i]);
if (check == 1) { //Tìm thấy số chính phương
console.log( array[i]+ " ");
sum += array[i] ;
}
}

console.log( "\nTong cac so chinh phuong trong mang: "+ sum);

Kết quả phép tính tổng các số chính phương trong mảng JavaScript:

Cac so chinh phuong trong mang: 
4
16
9

Tong cac so chinh phuong trong mang: 29

Tính trung bình cộng các số chính phương trong mảng

Để trung bình cộng các số chính phương trong mảng, chúng ta cần phải kết hợp cả 2 bài toán là đếm số chính phươngtính tổng các số chính phương có trong mảng mà Kiyoshi đã trình bày ở trên.

Sau khi tìm được rồi, chúng ta đơn giản chia tổng cho số số chính phương là sẽ ra trung bình cộng các số chính phương trong mảng.

Và chúng ta viết chương trình tính trung bình cộng các số chính phương trong mảng như sau:

function find_square_number(n){
//flag = 1 => số chính phương
//flag = 0 => không phải số chính phương

let flag = 0;

//Tìm số bất kỳ nhỏ hơn hoặc bằng n mà bình phương bằng n
let i = 0;
while(i <= n){
if( Math.pow( i, 2) == n ) {
flag = 1;
break; /*Chỉ cần tìm thấy 1 ước số là đủ và thoát vòng lặp*/
}
i++;
}

return flag;
}


let array = [5, 4, 16, 2, 8, 7, 3, 9];


let sum = 0, count = 0;
/*Tìm và đếm số chính phương trong mảng JavaScript*/
console.log( "Cac so chinh phuong trong mang: ");
for (let i = 0; i < array.length; ++i) {
let check = find_square_number(array[i]);
if (check == 1) { //Tìm thấy số chính phương
console.log( array[i]+ " ");
sum += array[i] ;
++ count
}
}

console.log( "\nTrung binh cong cac so chinh phuong trong mang: "+ sum/count);

Kết quả phép tính trung bình cộng các số chính phương trong mảng:

Cac so chinh phuong trong mang: 
4
16
9

Trung binh cong cac so chinh phuong trong mang: 9.666666666666666

Tìm số chính phương đầu tiên và cuối cùng có trong mảng

Để tìm số chính phương đầu tiên có trong mảng, chúng ta sử dụng 1 vòng lặp để kiểm tra các phần tử từ đầu tới cuối chuỗi có phải là số chính phương hay không.

Và số chính phương đầu tiên được tìm thấy chính là số chính phương đầu tiên mà chúng ta cần tìm.

Một cách tương tự thì để tìm số chính phương cuối cùng có trong mảng, chúng ta cũng sử dụng 1 vòng lặp để kiểm tra các phần tử. Tuy nhiên lần này chúng ta cần kiểm tra ngược lại từ cuối chuỗi tới đầu chuỗi.

Và số chính phương đầu tiên được tìm thấy chính là số chính phương cuối cùng trong mảng mà chúng ta cần tìm.

Chúng ta viết chương trình tìm số chính phương đầu tiên và cuối cùng có trong mảng như sau:

function find_square_number(n){
//flag = 1 => số chính phương
//flag = 0 => không phải số chính phương

let flag = 0;

//Tìm số bất kỳ nhỏ hơn hoặc bằng n mà bình phương bằng n
let i = 0;
while(i <= n){
if( Math.pow( i, 2) == n ) {
flag = 1;
break; /*Chỉ cần tìm thấy 1 ước số là đủ và thoát vòng lặp*/
}
i++;
}

return flag;
}


let array = [5, 4, 16, 2, 8, 7, 3, 9];


/*tìm số chính phương đầu tiên có trong mảng*/
for (let i = 0; i < array.length; ++i) {
let x = array[i];
let check = find_square_number(x);
if (check == 1) { //Tìm thấy số chính phương
console.log( "So chinh phuong dau tien: ", array[i]);

break;
}
}

/*tìm số chính phương cuối cùng có trong mảng*/
for (let i = array.length-1; i >= 0; --i) {
let x = array[i];
let check = find_square_number(x);
if (check == 1) { //Tìm thấy số chính phương
console.log( "So chinh phuong cuoi cung: ", array[i]);
break;
}
}

Kết quả phép tìm số chính phương đầu tiên và cuối cùng có trong mảng:

So chinh phuong dau tien: 4 
So chinh phuong cuoi cung: 9

Tìm số chính phương lớn nhất và nhỏ nhất trong mảng JavaScript

Để số chính phương lớn nhất và nhỏ nhất trong mảng JavaScript, đầu tiên chúng ta cần phải sắp xếp các phần tử trong mảng đó theo thứ tự giảm dần.

Sau khi sắp xếp, số chính phương lớn nhất trong mảng chính là số chính phương đầu tiên có trong mảng. Và ngược lại thì số chính phương nhỏ nhất trong mảng chính là số chính phương cuối cùng có trong mảng.

Về sắp xếp mảng trong JavaScript thì chúng ta sẽ dùng tới phương pháp mà Kiyoshi đã hướng dẫn trong bài: Sắp xếp mảng trong JavaScript

Và chúng ta viết chương trình tìm số chính phương đầu tiên và cuối cùng có trong mảng như sau:

function find_square_number(n){
//flag = 1 => số chính phương
//flag = 0 => không phải số chính phương

let flag = 0;

//Tìm số bất kỳ nhỏ hơn hoặc bằng n mà bình phương bằng n
let i = 0;
while(i <= n){
if( Math.pow( i, 2) == n ) {
flag = 1;
break; /*Chỉ cần tìm thấy 1 ước số là đủ và thoát vòng lặp*/
}
i++;
}

return flag;
}


let array = [5, 4, 16, 2, 8, 7, 3, 9];

/*Sắp xếp mảng theo thứ tự giảm dần*/
array.sort(function(a, b) {
return b - a;
});

/*Tìm số chính phương đầu tiên
Cũng chính là số chính phương lớn nhất trong mảng*/
for (let i = 0; i < array.length; ++i) {
let x = array[i];
let check = find_square_number(x);
if (check == 1) { //Tìm thấy số chính phương
console.log( "So chinh phuong lon nhat: ", array[i]);

break;
}
}

/*tìm số chính phương cuối cùng
Cũng chính là số chính phương nhỏ nhất trong mảng*/
for (let i = array.length-1; i >= 0; --i) {
let x = array[i];
let check = find_square_number(x);
if (check == 1) { //Tìm thấy số chính phương
console.log( "So chinh phuong nho nhat: ", array[i]);
break;
}
}

Kết quả phép số chính phương lớn nhất và nhỏ nhất trong mảng JavaScript:

So chinh phuong lon nhat:  16
So chinh phuong nho nhat: 4

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách tìm số chính phương trong mảng JavaScript rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về JavaScript trong các bài học tiếp theo.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.