Thuật toán kiểm tra số chính phương trong C/C++. Cách in ra màn hình số chính phương trong mảng một chiều, tính trung bình các
Tóm tắt nội dung bài viết
1. Số chính phương là gì?
Để hiểu được bài toán, trước hết tất cả chúng ta cần hiểu số chính phương là gì ?
Số chính phương hay còn gọi là square number: Là số nguyên dương có căn bậc 2 là một số nguyên, bạn có thể hiểu SCP là bình phương của một số nguyên nào đó.
Ví dụ các số: 1, 4, 9, 16, 25. . .
Tính chấ : Số lượng những điểm tương tự với số đó đó hoàn toàn có thể xếp thành một hình vuông vắn. Đây chính là nguyên do vì sao người ta gọi nó là square number .
Một số dạng bài tập liên quan đến số chính phương:
Tìm số chính phương trong mảng C, liệt kê các số chính phương nhỏ hơn n, tìm số chính phương lớn nhất. Tính tổng các scp trong mảng một chiều.
Có thể bạn chăm sóc tới những bài viết về lập trình C / C + + của mình khác !
Một bài viết chia sẻ về liệt kê các SCP nhỏ hơn N
2. Thuật toán kiểm tra số chính phương
Có hai cách để kiểm tra số chính phương, hai cách này có nội dung ý tưởng sáng tạo thuật toán đơn cử như sau :
Cách 1: Sử dụng vòng lặp for chạy từ i=1 tới khi i*i >n thì dừng. Nếu i*i = n thì tức là n là số nguyên tố. Nếu không có giá trị i nào thỏa mãn thì n không phải số nguyên tố.
Cách 2: Sử dụng hàm tính căn bậc e sqrt() trong thư viện math. Bạn khai báo biến nguyên i = sqrt(n). Nếu i*i = n thì tức là n là số chính phương.
Giải thích: i = sqrt(n) sẽ là một số nguyên. Nếu n không phải là số chính phương thì sqrt của nó sẽ bị làm tròn thành số nguyên vậy sau đó bình phương i sẽ là một số khác n.
Nếu như n < 1 thì n sẽ không phải là số chính phương. Điều kiện này sẽ giúp code của bạn hoàn chỉnh hơn.
Xem thêm: Mẹo Trị Hôi Chân Hiệu Quả Tại Nhà
3. Code hàm kiểm tra số chính phương C/C++
Bạn hoàn toàn có thể thiết kế xây dựng thành hàm kiểm tra số chính phương để dễ sử dụng trong những bài toán một cách thuận tiện nhất. Dựa vào ý tưởng sáng tạo mình đưa ra ở trên. Mình sẽ code thành hàm kiểm tra như sau :
Cách 1: Ở đây mình viết hàm kiểu bool (hàm trả về kiểu đúng, sai) và áp dụng đúng tư tưởng của cách 1 ở bên trên.
// Hàm kiểm tra số chính phương bool isSquareNumber(int a){ if(a<1) return false; int i=1; while(i*i<=a){ if(i*i==a) return true; i++; } return false; }
Cách 2: Sử dụng hàm sqrt() tuy nhiên bạn phải khai báo thư viện math
// Khai báo thư viện math: includebool checkSquareNumber(int n){ if(n<1) return false; int i = sqrt(n); if(i*i==n) return true; return false; // nếu không là scp return false }
4. Tìm số chính phương trong mảng một chiều
Có rất nhiều bài toán xoay quanh chủ để SCP này. Hôm nay mình sẽ xử lý bài toán in ra tổng thể những số chính phương trong mảng một chiều có n thành phần nhé .
Cách làm rất đơn thuần. Mình sẽ duyệt mảng, sau đó kiểm tra từng thành phần sử dụng hàm đã code ở bên trên. Nếu thỏa mãn nhu cầu thĩ sẽ in ra mành hình là oki !
Code C / C + + :
// code by duongdinh24.com //github: https://github.com/duongdinh24/ #include#include using namespace std; // Hàm kiểm tra SCP cách 1 bool isSquareNumber(int a){ if(a<1) return false; int i=1; while(i*i<=a){ if(i*i==a) return true; i++; } return false; } // Hàm kiểm tra SCP cách 2 bool checkSquareNumber(int n){ if(n<1) return false; int i = sqrt(n); if(i*i==n) return true; return false; } // Ham in ra cac so chinh phuong trong mang void printSquareNumber(int a[], int n){ cout<<"Cac so chinh phuong trong mang: \n"; for(int i=0;i >n; } while(n<=0); int a[n]; // Khai bao mang a co n phan tu cout<<"Nhap mang: "< >a[i]; } printSquareNumber(a,n); return 0; }
Kết quả của chạy chương trình trên:
Xem thêm: Những Loại Nước Súc Miệng Trị Hôi Miệng
Ở trong ví dụ này những số 1, 4 và 25 là số chính phương .
Ok, bài viết của mình đến đây là hết rồi, cảm ơn bạn đã chăm sóc bài viết nhé !
Source: http://wp.ftn61.com
Category: Tin Tức
Để lại một bình luận