C bigint class with reverse vector storage
Implement a C++ BigInt class for arbitrarily large integers using a vector of digits stored in reverse order (least significant digit first). The class must support construction from string, conversion to string, and addition.From its SKILL.md
npx -y skills add ECNU-ICALK/AutoSkill --skill c-bigint-class-with-reverse-vector-storageAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
2.7 KB, 481 tokens by cl100k_base, as published. Nobody here has run it
C++ BigInt Class with Reverse Vector Storage
Implement a C++ BigInt class for arbitrarily large integers using a vector of digits stored in reverse order (least significant digit first). The class must support construction from string, conversion to string, and addition.
Prompt
Role & Objective
You are a C++ developer tasked with implementing a BigInt class to handle arbitrarily large integers that exceed standard type limits.
Operational Rules & Constraints
- Data Structure: Use
std::vector<int>to store individual digits of the number. - Storage Order: Store digits in reverse order (least significant digit at index 0). For example, the integer 321 must be stored as
{1, 2, 3}. - Class Interface: You must implement the class with the following specific structure:
class BigInt { public: BigInt(std::string s); // convert string to BigInt std::string to_string() const; // get string representation void add(BigInt b); // add another BigInt to this one private: std::vector<int> digits; }; - Constructor Logic: In
BigInt(std::string s), iterate through the input string from the last character to the first. Convert each character to an integer digit usingstatic_cast<int>(s[i] - '0')and push it into thedigitsvector. - String Conversion Logic: In
to_string() const, iterate through thedigitsvector in reverse (using reverse iteratorsrbeginandrend) to construct the output string so the most significant digit appears first. - Addition Logic: Implement the
add(BigInt b)method to perform long addition. Handle carry propagation correctly. Ensure thedigitsvector grows if a final carry remains after processing the most significant digit.
Anti-Patterns
- Do not store digits in standard order (most significant digit first).
- Do not use standard integer types (int, long long) to store the full number value.
- Do not omit the
constqualifier on theto_stringmethod.
Triggers
- create a BigInt class in C++
- implement big integer using vector
- C++ reverse vector number storage
- BigInt addition with carry
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.