Trong lập trình C/C++, công việc thao tác với số nguyên lớn là một chủ đề quan trọng. Bài viết này sẽ cung cấp phương pháp để làm việc với các số nguyên lớn trong ngôn ngữ này. Các phép toán cơ bản bao gồm cộng, trừ, nhân và chia các số nguyên lớn, cùng với một số phép toán khác.
Khi nào cần sử dụng Bigint trong C/C++?
Đôi khi chúng ta cần làm việc với các số nguyên lớn khi các kiểu dữ liệu thông thường không đủ để lưu trữ giá trị. Ví dụ như khi tính tổng, hiệu và tích của hai số nguyên lớn hoặc tính giai thừa của một số lớn. Trong trường hợp này, chúng ta cần xây dựng một thư viện để thao tác với số nguyên lớn.
Thao tác với số nguyên lớn trong C/C++
Để làm việc với số nguyên lớn trong C/C++, chúng ta có thể sử dụng cấu trúc struct
như sau:
struct BigInt { int sign; // Dấu của số nguyên lớn vector a; // Mảng lưu các đoạn của số nguyên lớn ... };
Tiếp theo, chúng ta có một số hàm tạo khác nhau cho kiểu dữ liệu bigint
.
Sau đó, chúng ta có thể chuyển đổi một chuỗi thành số nguyên lớn.
Ngoài ra, còn có nạp chồng các toán tử nhập và xuất.
Chúng ta cũng có thể nạp chồng một loạt các toán tử khác nhau bao gồm cộng, trừ, nhân, chia và các toán tử gán.
Tự code thư viện thao tác với số nguyên lớn
Dưới đây là đoạn code đầy đủ để thao tác với số nguyên lớn trong C/C++. Code mẫu này đã bao gồm tất cả các thư viện cần thiết. Bạn chỉ cần viết thêm hàm main
và sử dụng nó.
#include #include #include using namespace std; struct BigInt { int sign; // Dấu của số nguyên lớn vector a; // Mảng lưu các đoạn của số nguyên lớn ... // Nạp chồng toán tử và các hàm khác }; int main() { // Sử dụng số nguyên lớn ở đây ... return 0; }
Cộng trừ nhân chia 2 số nguyên lớn trong C/C++
4.1. Code cộng hai số nguyên lớn
Để cộng hai số nguyên lớn, chúng ta có thể sử dụng đơn giản như sau:
BigInt operator+(const BigInt& a, const BigInt& b) { ... return sum; }
4.2. Code trừ hai số nguyên lớn
Phép trừ hai số nguyên lớn cũng được thực hiện tương tự như phép cộng.
4.3. Một số phép toán khác với số nguyên lớn
Chúng ta cũng có thể thực hiện các phép nhân, chia, tìm UCLN và BCNN với số nguyên lớn. Bạn có thể sử dụng các hàm và toán tử có sẵn trong code mẫu để thực hiện các phép toán này.
4.4. Bài toán tính giai thừa của số lớn
Để tính giai thừa của một số lớn, chúng ta có thể nhân các phần tử từ 1 đến số đó với nhau. Kết quả sẽ là lời giải của bài toán.
Với bài toán tính giai thừa của số nguyên lớn N (N <= 1000), chúng ta có thể nhập N là một số kiểu int
. Dưới đây là đoạn mã main
cho bài toán này:
int main() { // Tính giai thừa của số lớn ... return 0; }
Chúc bạn học tập tốt!