• [小米OJ] 3. 大数相减


    题目链接

    思路:

    利用两个string保存相减的数,其他模拟即可。

    参考了别人的一个处理减的步骤,很简洁好看。

    string substract(string str1, string str2)
    {
        string str = "";
        int len = str1.length();
        int a = 0, b = 0, c = 0;
        for (int i = len - 1; i >= 0; i--)
        {
            a = str1[i] - '0';
            b = str2[i] - '0';
            str += ((a - b - c + 10) % 10) + '0';
            if (a - b - c >= 0)
                c = 0;
            else
                c = 1;
        }
        reverse(str.begin(), str.end());
        return str;
    }

    完整代码:

    #include <bits/stdc++.h>
    using namespace std;
    
    void init1(string input, string &str1, string &str2)
    {
        int index = input.find('-');
        for (int i = 0; i < input.length(); i++)
        {
            if (i < index)
                str1 += input[i];
            else if (i > index)
                str2 += input[i];
        }
    }
    
    void init2(string str1, string &str2)
    {
        while (str2.length() < str1.length())
        {
            str2 = '0' + str2;
        }
    }
    
    string substract(string str1, string str2)
    {
        string str = "";
        int len = str1.length();
        int a = 0, b = 0, c = 0;
        for (int i = len - 1; i >= 0; i--)
        {
            a = str1[i] - '0';
            b = str2[i] - '0';
            str += ((a - b - c + 10) % 10) + '0';
            if (a - b - c >= 0)
                c = 0;
            else
                c = 1;
        }
        reverse(str.begin(), str.end());
        return str;
    }
    
    void print(string str)
    {
        while (str[0] == '0')
        {
            str.erase(str.begin());
        }
        if (str.length() == 0)
            str = "0";
        cout << str << endl;
    }
    
    int main()
    {
        string input, str, str1, str2;
        while (cin >> input)
        {
            init1(input, str1, str2);
            init2(str1, str2);
            str = substract(str1, str2);
            print(str);
        }
        return 0;
    }
  • 相关阅读:
    springboot 路由 json
    mybatis-plus 条件构造器 Wrapper
    mybatis-plus 逻辑删除
    mybatis-plus 分页查询
    mybatis-plus 乐观锁
    mybatis-plus 自动填充处理
    mybatis-plus 增删改查(普通)
    mybatis-plus 日志
    mybatis-plus 初识
    React项目如何打包发布及遇到的坑
  • 原文地址:https://www.cnblogs.com/ruoh3kou/p/10279892.html
Copyright © 2020-2023  润新知