用C++编写一个Add函数,实现两个10位数的和,并设计main函数进行测试。
时间: 2024-10-06 11:06:32 浏览: 47
在C++中,我们可以创建一个名为`Add`的函数来计算两个10位整数的和。由于C++没有内置的10位数字类型,我们通常会用数组来模拟。以下是简单的实现:
```cpp
#include <iostream>
using namespace std;
// 定义一个结构体来存储10位数
struct TenBitNumber {
int digits[10];
int size;
};
// 将字符串转换为10位数
TenBitNumber stringToTenBit(const string& str) {
TenBitNumber num;
num.size = str.length();
for (int i = 0; i < num.size; ++i) {
if (str[i] >= '0' && str[i] <= '9') {
num.digits[num.size - i - 1] = str[i] - '0';
} else {
cout << "Invalid input! Only digits allowed." << endl;
return num;
}
}
return num;
}
// Add function to calculate the sum of two 10-bit numbers
TenBitNumber add(TenBitNumber a, TenBitNumber b) {
if (a.size != b.size) {
cout << "Numbers must have the same length." << endl;
return TenBitNumber(); // Return an empty number in case of error
}
TenBitNumber result;
result.size = a.size;
int carry = 0;
for (int i = 0; i < result.size; ++i) {
int sum = a.digits[i] + b.digits[i] + carry;
result.digits[i] = sum % 10;
carry = sum / 10;
}
if (carry > 0) {
result.digits[result.size] = carry;
++result.size;
}
return result;
}
// Main function for testing
int main() {
string str1 = "1234567890";
string str2 = "9876543210";
TenBitNumber num1 = stringToTenBit(str1);
TenBitNumber num2 = stringToTenBit(str2);
if (num1.size == 10 && num2.size == 10) {
TenBitNumber result = add(num1, num2);
for (int i = 0; i < result.size; ++i) {
cout << result.digits[i];
}
cout << endl;
} else {
cout << "Failed to convert strings to 10-bit numbers." << endl;
}
return 0;
}
```
这个程序首先将输入的字符串转换成`TenBitNumber`类型的结构体,然后在`add`函数中实现两个10位数的加法。`main`函数用于测试,如果输入的是有效的10位数,则输出它们的和。
阅读全文