145 条题解

  • -1
    @ 2023-9-15 20:33:08

    何不试一试这种C++代码呢?

    #include <iostream>
    #include <string>
    
    // 定义 A+B 的函数
    std::string add(std::string num1, std::string num2) {
        // 将两个数字字符串转换为数字数组
        int len1 = num1.length();
        int len2 = num2.length();
        int maxLen = std::max(len1, len2);
        int* arr1 = new int[maxLen];
        int* arr2 = new int[maxLen];
        for (int i = 0; i < maxLen; i++) {
            if (i < len1) {
                arr1[i] = num1[len1 - i - 1] - '0';
            } else {
                arr1[i] = 0;
            }
            if (i < len2) {
                arr2[i] = num2[len2 - i - 1] - '0';
            } else {
                arr2[i] = 0;
            }
        }
    
        // 进行加法运算
        int carry = 0;
        std::string result = "";
        for (int i = 0; i < maxLen; i++) {
            int sum = arr1[i] + arr2[i] + carry;
            carry = sum / 10;
            result = std::to_string(sum % 10) + result;
        }
        if (carry > 0) {
            result = std::to_string(carry) + result;
        }
    
        delete[] arr1;
        delete[] arr2;
    
        return result;
    }
    
    int main() {
        // 读取输入的两个数字
        std::string num1, num2;
        std::cout << "请输入两个数字:" << std::endl;
        std::cin >> num1 >> num2;
    
        // 计算并输出结果
        std::string sum = add(num1, num2);
        std::cout << "结果为:" << sum << std::endl;
    
        return 0;
    }
    

    但愿这种代码不会出现TLE或者是MLE 这个代码使用了字符串来表示大数,通过将字符串转换为数字数组,然后进行逐位相加的方式来实现 A+B 的功能。由于使用了字符串和动态数组,代码量较大。但是在实际应用中,这种方式并不是最高效的解决方案。在实际情况下,我们可以使用更简洁和高效的算法来解决这个问题。


    我们可以用更简洁的方法做这道题

    #include <bits/stdc++.h>
    using namespace std;
    int main(){
    	int a, b;
    	cin >> a >> b;
    	cout << a + b;
    	return 0;
    

    上面的代码是进行变量a和b直接相加的代码吗,这种也许就是标准代码。

    好了,这道题的题解到此为止,走过路过,不要错过,点点赞吧~~~么么哒😗🥰

    信息

    ID
    56
    时间
    1000ms
    内存
    1024MiB
    难度
    1
    标签
    递交数
    9073
    已通过
    4043
    上传者