Bài tập C++: Viết chương trình, hàm kiểm tra số chính phương

Bài tập lập trình C++ : Hàm Kiểm tra số chính phương, thuật toán kiểm tra số chính phương


Viết chương trình nhập vào số nguyên dương n. Kiểm tra xem n có phải là số chính phương hay không? (số chính phương là số khi lấy căn bặc 2 có kết quả là nguyên). viết chương trình kiểm tra số chính phương trong c++

Số chính phương là 1 trong những bài tập gặp rất nhiều trong chương trình học lập trình cơ bản. Bài toán này cũng là 1 trong những bài toán có rất nhiều cách giải khác nhau. Như kiểu chạy i tới 1/n và bình thường lên khi nào =n thì n là số chính phương.. Hoặc chạy i = 1 kiểm tra tiếp nếu i bình phương < n thì tiếp tục + 1 lên. Các bạn có thể tham khảo một số cách dưới đây

Kiểm tra số chính phương bằng cách ép kiểu số nguyên.

Mã:
#include<iostream.h>
int main()
{
    int n,i;
    cout<<"nhap so nguyen n"<<endl;
    cin>>n;
    i=sqrt(n);
    if(n==i*i)
        cout<<"la so chinh phuong"<<"\n";
    else 
        cout<<"khong phai so chinh phuong";
}

Hàm kiểm tra số chính phương đơn giản khác:
Mã:
int kiemTraSoChinhPhuong(int n)
{
  int i=0;
  while(i*i<n) ++i;
  return (i*i==n);
}

Tiếp tục 1 cách sử dụng hàm khai căn

Mã:
#include <iostream>
#include <math.h>
  
int main()
{
    int n;
    cout<<"Nhap n:";
    cin>>n;
    if(sqrt(n)*sqrt(n)==n) 
		cout<<"Day la so chinh phuong."<<endl;
    else 
		cout<<"Khong phai la so chinh phuong"<<endl;
}

Nếu có cách nào tối ưu hơn các bạn cùng thảo luận nhé, riêng cách cho i chạy thì mình không post vì nó khá thủ công và không tối ưu cho xử lý tính toán
 
  • Chủ đề
    bai tap c kiem tra so chinh phuong so chinh phuong thuat toan so chinh phuong
  • Top