以下是一个使用 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函数实现了高精度减法。它首先比较两个数字的长度,然后从低位到高位逐位相减,并根据需要借位。最后,函数将结果进行反转,并去掉前导零。

C++ 高精度减法程序实现

原文地址: https://www.cveoy.top/t/topic/qaEI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录