Các phép toán với dữ liệu kiểu số cơ bản (toán tử số học): cộng, trừ, nhân, chia, chia lấy phần dư, chia lấy phần nguyên.
Xuất ra kết quả gồm mặc định và có định dạng căn lề và số chữ số thập phân (số nguyên, số thực).
Để tăng tốc độ nhập/xuất cần tắt chế độ đồng bộ bằng cách thêm ba lệnh này ở ngay đầu hàm main.
ios_base::sync_with_stdio(0); – Tắt đồng bộ hóa giữa các luồng nhập/xuất của C++ và C.
cin.tie(0); – Tăng hiệu suất khi sử dụng cin.
cout.tie(0); – Tăng hiệu suất khi sử dụng cout; có thể bỏ qua lệnh này.
| TT | Phép toán | Kí hiệu | Ví dụ | Kết quả |
|---|---|---|---|---|
| 1 | Cộng | + | 9+4 | 13 |
| 2 | Trừ | - | 9-4 | 5 |
| 3 | Nhân | * | 9*4 | 36 |
| 4 | Chia | / | 9/4 | 2 |
| 9.0/4 | 2.25 | |||
| 9/4.0 | 2.25 | |||
| 5 | Chia lấy phần dư | % | 9%4 | 1 |
| 6 | Tăng 1 đơn vị | ++ | a++ | Giống a = a + 1 |
| 7 | Giảm 1 đơn vị | -- | a-- | Giống a = a - 1 |
| TT | Tên hàm | Ý nghĩa | Thư viện |
|---|---|---|---|
| 1 | max(a,b) | Trả về giá trị lớn nhất trong hai số a, b | #include <algorithm> |
| 2 | min(a,b) | Trả về giá trị nhỏ nhất trong hai số a, b | |
| 3 | max({a+b,a+c,b+c}) | Trả về giá trị lớn nhất trong các biểu thức | |
| 4 | min({a+b,a+c,b+c}) | Trả về giá trị nhỏ nhất trong các biểu thức | |
| 5 | pow(x,y) | Trả về x mũ y | #include <math.h> |
| 6 | sqrt(x) | Trả về căn bậc 2 của x | #include <math.h> |
| 7 | cbrt(x) | Trả về căn bậc 3 của x | #include <math.h> |
| 8 | abs(x) | Trị tuyệt đối của số nguyên x | #include <math.h> |
| 9 | fabs(x) | Trị tuyệt đối của số thực x | #include <math.h> |
| 10 | hypot(x,y) | Trả về độ dài cạnh huyền của tam giác vuông có hai cạnh góc vuông x và y | #include <math.h> |
| 11 | __gcd(a,b) | Trả về UCLN của hai số a và b | #include <algorithm> |
| 12 | BCNN = a*b / UCLN | Tính BCNN thông qua UCLN | |
| 13 | ceil(x) | Làm tròn một số thực lên thành số nguyên gần nhất lớn hơn hoặc bằng nó. Ví dụ: ceil(4.3)=5 | #include <cmath> |
| 14 | floor(x) | Làm tròn một số thực xuống thành số nguyên gần nhất nhỏ hơn hoặc bằng nó. Ví dụ: floor(4.8)=4 | #include <cmath> |
| 15 | round(x) | Trả về giá trị số nguyên gần nhất dưới dạng double | #include <cmath> |
| 16 | llround(x) | Trả về giá trị số nguyên gần nhất dưới dạng long long | #include <cmath> |
| 17 | lround(x) | Trả về giá trị số nguyên gần nhất dưới dạng long | #include <cmath> |
#include <algorithm>1. Sắp xếp (Sorting)
sort(begin, end): Sắp xếp dãy theo thứ tự tăng dần.
sort(begin, end, cmp): Sắp xếp theo thứ tự tùy chỉnh được định nghĩa bởi hàm cmp.
2. Tìm kiếm (Searching)
binary_search(begin, end, value): Kiểm tra xem value có trong dãy đã được sắp xếp hay không.
lower_bound(begin, end, value): Tìm iterator đến phần tử đầu tiên không nhỏ hơn value.
upper_bound(begin, end, value): Tìm iterator đến phần tử đầu tiên lớn hơn value.
3. Biến đổi (Transforming)
reverse(begin, end): Đảo ngược dãy.
reverse(begin + a, begin + b): Đảo ngược các phần tử từ vị trí a đến trước vị trí b của dãy (chỉ số bắt đầu từ 0).
4. Tìm giá trị (Finding)
find(begin, end, value): Tìm phần tử có giá trị value.
find_if(begin, end, pred): Tìm phần tử đầu tiên thỏa mãn điều kiện pred.
find_if_not(begin, end, pred): Tìm phần tử đầu tiên không thỏa mãn điều kiện pred.
5. Các hàm liên quan đến số học (Numeric Operations)
accumulate(begin, end, init): Tính tổng các phần tử, bắt đầu từ giá trị khởi tạo init.
6. Các hàm khác
replace(begin, end, old_value, new_value): Thay thế tất cả các phần tử có giá trị old_value thành new_value.
count(begin, end, value): Đếm số lần xuất hiện của value.
count_if(begin, end, pred): Đếm số phần tử thỏa mãn điều kiện pred.
unique(begin, end): Loại bỏ các phần tử trùng lặp liên tiếp.
coutXuất dữ liệu nhưng không xuống dòng:
cout << dữ_liệu_xuất;
Xuất dữ liệu và xuống dòng:
cout << dữ_liệu_xuất << "\n";
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout << "9+4 = " << 9+4 << "\n";
cout << "9-4 = " << 9-4 << "\n";
cout << "9*4 = " << 9*4 << "\n";
cout << "9/4 = " << 9.0/4 << "\n";
cout << "9%4 = " << 9%4 << "\n";
cout << "9/4 = " << 9/4 << "\n";
return 0;
}
Ghi chú:
#include <bits/stdc++.h> bao gồm hầu hết các thư viện chuẩn của C++ (Standard Libraries) chỉ với một dòng lệnh.
Cách này thường được dùng trong lập trình thi đấu hoặc khi học C++, tuy nhiên trong các chương trình chuẩn người ta thường chỉ
include những thư viện cần thiết.
Để định dạng số thực khi xuất ra màn hình, ta có thể sử dụng:
cout << setprecision(n) << fixed << dữ_liệu_số_thực;
Ghi chú:
n là số nguyên (n ≥ 0), biểu thị số chữ số phần thập phân được hiển thị.
fixed dùng để in số thực ở dạng thập phân và làm tròn đến n chữ số thập phân.
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout << setw(10) << left
<< setprecision(5) << fixed
<< "9/4 = " << 9.0/4 << "\n";
cout << setprecision(1) << fixed
<< "9/4 = " << 9.0/4 << "\n";
return 0;
}
Giải thích:
setw(10): đặt độ rộng hiển thị là 10 ký tự.
left: căn lề trái trong vùng độ rộng đã đặt.
setprecision(5): hiển thị 5 chữ số phần thập phân.
setprecision(1): hiển thị 1 chữ số phần thập phân.
Cú pháp:
cout << setw(n) << căn_lề << dữ_liệu_xuất;
Ghi chú:
n là số nguyên (n ≥ 0), biểu thị độ rộng dành cho dữ liệu xuất.
Căn lề trái hoặc phải tương ứng với left hoặc right.
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout << setw(10) << left << "9+4 = " << 9+4 << "\n";
cout << setw(10) << right << "9-4 = " << 9-4 << "\n";
cout << setw(10) << left << "9*4 = " << 9*4 << "\n";
cout << setw(10) << right << "9/4 = " << 9/4 << "\n";
cout << setw(10) << left << "9/4 = " << 9.0/4 << "\n";
return 0;
}
Ghi chú thêm:
Các hàm setw, left, right thuộc thư viện
<iomanip>. Tuy nhiên khi sử dụng
#include <bits/stdc++.h> thì thư viện này đã được bao gồm sẵn.