Căn bậc n của một số x là một số r mà khi số r lũy thừa n chính bằng x.
Căn bậc chẵn là các căn bậc có hệ số n là số chẵn, ví dụ như căn bậc 2, căn bậc 4, căn bậc 6….
Căn bậc lẻ là các căn bậc có hệ số n là số lẻ, ví dụ như căn bậc 3, căn bậc 5, căn bậc 7….
*Căn bậc chẵn
Các căn bậc chẵn thì luôn có 2 kết quả là 1 kết quả số âm và 1 kết quả là số dương. Vì bất kì 1 số âm hay số dương khi mũ chẵn lên đều sẽ ra kết quả là 1 số dương, nên khi đó số đó khai căn cũng được 2 kết quả 1 số âm và 1 số dương(số lượng số mang dấu âm mà chẵn thì khi nhân với nhau luôn ra 1 số dương , vì cứ 2 số âm nhân với nhau thì ra dương).
Số âm thì không có căn bậc chẵn, vì không có bất kì 1 số nào mà khi mũ chẵn lên có kết quả số âm được.
Ví dụ : (-2^2) = 4, (2^2) = 4, vậy căn bậc 2 của 4 có 2 kết quả là 2 và -2.
(-2^4) = 16, (2^2) = 16, vậy căn bậc 4 của 16 cũng có 2 kết quả là 2 và -2.
Nhưng thông thường thì khi tính căn bậc chẵn của một số người ta sẽ chỉ lấy kết quả là số dương.
- Kiếm tiền Accesstrade, kiếm tiền tại nhà với Accesstrade.vn – Tiếp thị liên kết
- MegaURL – Rút gọn link kiếm tiền có giá cao tại Việt Nam
- Top 4 App kiếm tiền online trên điện thoại tốt nhất 2022
*Căn bậc lẻ
Không giống như căn bậc chẵn căn bậc lẻ của 1 số sẽ chỉ luôn có 1 kết quả duy nhất, nếu số đó là số dương khi khai căn bậc lẻ sẽ được 1 số dương, ngược lại nếu là 1 số âm khi khai căn cũng sẽ được kết quả là 1 số âm.
Tại sao lại như vậy, vì tất cả các số dương nhân với nhau sẽ luôn ra 1 số dương. Nên với 1 số dương khi mũ bao nhiêu thì cũng sẽ được 1 số dương rồi.
Còn đối với số âm thì cứ 2 số âm nhân với nhau thì được 1 số dương và nếu bị lẻ đi 1 số thì khi nhân vào kết quả lại ra âm.
Vì vậy không có số âm nào khi mà mũ lẻ lên ra được 1 số dương, như vậy khai căn bậc lẻ của 1 số dương thì sẽ chỉ ra được 1 số dương, 1 số âm sẽ chỉ ra kết quả âm.
Ví dụ: (-2^3) = -8 vậy căn bậc 3 của -8 là -2
(2^3) = 8 vậy căn bậc 3 của 8 là 2
(-2^5) = – 32 vậy căn bậc 5 của -32 là -2
(2^5) = 32 vậy căn bậc 5 của 32 là 2
Giải thích khá dài dòng rồi, vậy cụ thể làm sao để tính được căn bậc 3, căn bậc 4 hay căn bậc n của 1 số trong lập trình C/C++?
Cách tính căn bậc 3, căn bậc 4 và căn bậc n trong lập trình C/C++
Trong C/C++ thì không có hàm nào để khai căn trực tiếp căn bậc 3, căn bậc 4 hay căn bậc n của 1 số cả, mà chỉ có hàm tính căn bậc 2 là hàm sqrt.
Tuy nhiên, theo như bạn đã biết thì căn bậc là một hàm ngược của lũy thừa. Cụ thể với căn bậc n của một số a có thể được biểu diễn một cách khác là lũy thừa bậc 1/n của a, hay nói cách khác thì a1/n = x.
Ví dụ:
∛8=2 hay 81/3=2 vì 23=8;
∜16=2 hay 161/4=2 vì 24 = 16.
Để tính được lũy thừa(mũ) của một số trong C/C++ thì ta có hàm pow nằm trong thư viện math.h.
Hàm pow có các tham số như sau: pow(kiểu dữ liệu a, kiểu dữ liệu n), với a là cơ số và n là lũy thừa bậc n(số mũ).
- Khóa học lập trình C/C++ từ A-Z cho người mới – Giảm giá 40% hôm nay
- Khóa học Java cơ bản dành cho người mới bắt đầu- Giảm 40% hôm nay
- Khóa học lập trình Android từ cơ bản đến thành thạo – Giảm ngay 40%
Cụ thể để tính căn bậc n của 1 số ta viết chương trình trong C như sau:
#include <stdio.h>
#include <math.h>
int main()
{
//Khai báo các số mình muốn thực hiện khai căn
int a = 4;
int b = 8;
int c = 27;
int d = 35;
//Thực hiện khai căn
printf("\nCan bac 2 cua %d la: %f",a, pow(a,1/2.)); //Vì sau lại để dấu "." đằng sau mỗi con số mục đích là để ép kiểu thành số thực(float, double), không làm như vậy thì 2 số nguyên chia cho nhau sẽ chỉ ra 1 số nguyên đó ạ
printf("\nCan bac 3 cua %d la: %f",b, pow(b,1/3.));
printf("\nCan bac 3 cua %d la: %f",c, pow(c,1/3.));
printf("\nCan bac 4 cua %d la: %f",d, pow(d,1/4.));
}
Hoặc nếu đề bài có yêu cầu là viết chương trình thực hiện nhập vào 1 số A từ bàn phím và một số n, hãy tính căn bậc n của A ta sẽ viết chương trình như sau:
#include <stdio.h>
#include <math.h>
int main()
{
int a, n;
printf("Nhap co so a: ");
scanf("%d", &a);
printf("Nhap so mu n: ");
scanf("%d", &n);
float kq = pow(a,1/(float)n); //(float)n -> ép kiểu n thành số nguyên || khi thực hiện phép chia 2 số nguyên bạn cần ép kiểu 1 trong 2 số thì kq ms có thể ra được số thực...thy vì viết pow(a,1/(float)n) ta cũng có thể viết pow(a,1./n) hoặc pow(a,(float)1/n);
printf("\nCan bac %d cua %d la: %f", n, a, kq);
}
Viết chương trình trên C++
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int a, n;
printf("Nhap co so a: ");
scanf("%d", &a);
printf("Nhap so mu n: ");
scanf("%d", &n);
float kq = pow(a,1/(float)n);
cout<<"Can bac "<<n<<" cua "<<a<<" la: "<<kq;
}
[Xem tất cả bài viết chủ đề C/C++ tại đây]