Tìm căn bậc hai (không sử dụng hàm sqrt) trong C



Bài tập C: không sử dụng hàm sqrt() hãy tìm căn bậc hai của một số

Đây có thể là một trong các bài tập mà các bạn nhận được từ Giảng viên. Bài tập C này có thể được giải theo hai bước:

  • Tìm phân nguyên

  • Tìm phần thập phân

Đây chỉ là cách giải cho kết quả xấp xỉ, và độ chính xác phụ thuộc vào số các số sau dấu thập phân.

Bạn theo dõi phần code dưới đây để hiểu cách tìm căn bậc hai của một số bất kỳ (tất nhiên không phải là số âm rồi) mà không sử dụng hàm sqrt() trong C.

Nếu bạn thích thú với chương trình tìm căn bậc ba của một số, mời bạn click chuột vào chương Tìm căn bậc ba của một số

Chương trình C

Dưới đây là chương trình C để giải bài tập tìm căn bậc hai của một số trong C:

#include 
double squareRoot(double n) {
   double i, precision = 0.00001;   for(i = 1; i*i <=n; ++i);   //tim phan nguyen   for(--i; i*i < n; i += precision);  //tim phan thap phan   return i;
}int main() {
   int n = 24;   printf("Can bac hai cua %d = %lf", n, squareRoot(n));   return 0;
}

Biên dịch chương trình C trên sẽ cho kết quả:

Tìm căn bậc hai trong C
tong-hop-cac-chuong-trinh-tinh-toan-trong-c.jsp