C++ 高精度减法程序实现
以下是一个使用 C++ 实现高精度减法的例子:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string subtract(string num1, string num2) {
int len1 = num1.length();
int len2 = num2.length();
if (len1 < len2) {
swap(num1, num2);
swap(len1, len2);
}
int carry = 0;
string result;
for (int i = 0; i < len1; ++i) {
int digit1 = num1[len1 - 1 - i] - '0';
int digit2 = i < len2 ? num2[len2 - 1 - i] - '0' : 0;
int diff = digit1 - digit2 - carry;
if (diff < 0) {
diff += 10;
carry = 1;
} else {
carry = 0;
}
result.push_back(diff + '0');
}
reverse(result.begin(), result.end());
// 去掉前导零
int leadingZeros = 0;
while (leadingZeros < result.length() && result[leadingZeros] == '0') {
++leadingZeros;
}
result = result.substr(leadingZeros);
return result.empty() ? "0" : result;
}
int main() {
string num1, num2;
cout << "请输入被减数:";
cin >> num1;
cout << "请输入减数:";
cin >> num2;
string result = subtract(num1, num2);
cout << "减法结果为:" << result << endl;
return 0;
}
这个程序会要求用户输入两个数字作为被减数和减数,并输出它们的差。程序中的subtract函数实现了高精度减法。它首先比较两个数字的长度,然后从低位到高位逐位相减,并根据需要借位。最后,函数将结果进行反转,并去掉前导零。
原文地址: https://www.cveoy.top/t/topic/qaEI 著作权归作者所有。请勿转载和采集!