Thứ Tư, 28 Tháng Chín 2022
Trang chủLập trìnhLậ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...

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++

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.

*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ũ).

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]

0 0 Phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN
Đăng ký nhận thông báo
Thông báo email khi
guest
0 Bình luận
Không thể gửi email
Phản hồi nội tuyến

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?


0
Giáo sư! có thể ném gạch bên dưới nhé!x
()
x