大整数相减的c++代码
时间: 2024-12-24 22:09:58 浏览: 5
在C++中处理大整数相减时,通常会利用字符串或者自定义的大整数类来进行操作,因为标准库中的`int`数据类型可能会溢出。这里是一个简单的例子,展示如何使用字符串来表示大整数并进行相减:
```cpp
#include <iostream>
#include <string>
// 自定义大整数类
class BigInt {
private:
std::string num;
public:
BigInt(const std::string& str) : num(str) {}
// 重载加法运算符-
BigInt operator-(const BigInt& other) const {
if (num.size() > other.num.size()) {
std::swap(num, other.num);
}
std::string result = "";
int carry = 0;
for (int i = num.size() - 1; i >= 0; --i) {
int diff = (num[i] - '0') - (other.num[i] - '0') - carry;
result = (diff + '0') + result;
carry = diff < 0 ? 1 : 0;
}
if (carry) result = '1' + result;
return BigInt(result);
}
void print() const { std::cout << num << std::endl; }
};
int main() {
BigInt a("9999999999");
BigInt b("1234567890");
BigInt c = a - b;
c.print();
return 0;
}
```
在这个例子中,我们创建了一个名为`BigInt`的类,它有一个字符串成员变量存储数字,并实现了`operator-`重载来支持减法。注意这个方法假设输入的都是正整数,实际应用中可能需要考虑负数、零等边界情况。
阅读全文