Các hàm số nguyên (Integer Functions) trong thư viện C trả về giá trị tuyệt đối của số nguyên.
Khai báo nguyên mẫu
int abs(int n); long labs(long n); long long llabs(long long n);
Được định nghĩa trong header <cstdlib> (C++), <stdlib.h> (C).
Chi tiết từng hàm
1. abs() – Giá trị tuyệt đối của int
- C: Nhận
int, trả vềint. - C++: Nạp chồng cho
int, long, long long, kiểu trả về tương ứng. - Loại bỏ dấu âm:
abs(-43) = 43,abs(12) = 12.
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
cout << "abs(123) = " << abs(123) << "\n";
cout << "abs(-986) = " << abs(-986) << "\n";
return 0;
}
abs(123) = 123 abs(-986) = 986
2. labs() – Giá trị tuyệt đối của long
- Đầu vào/ra đều là
long int. - Xử lý số lớn hơn
int.
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
long a = labs(437567342L);
long b = labs(-8764523L);
cout << "labs(437567342L) = " << a << "\n";
cout << "labs(-8764523L) = " << b << "\n";
return 0;
}
labs(437567342L) = 437567342 labs(-8764523L) = 8764523
3. llabs() – Giá trị tuyệt đối của long long
- Đầu vào/ra là
long long int. - Dùng cho số rất lớn (64-bit).
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
long long a = llabs(9796546325253547656LL);
long long b = llabs(-1423446557676111567LL);
cout << "llabs(...) = " << a << "\n";
cout << "llabs(...) = " << b << "\n";
return 0;
}
llabs(9796546325253547656LL) = 9796546325253547656 llabs(-1423446557676111567LL) = 1423446557676111567