HDU1047——Integer Inquiry,HDU1048——The Hardest Problem Ever,HDU1049——Climbing Worm

目录

HDU1047——Integer Inquiry

题目描述

运行代码

代码思路

HDU1048——The Hardest Problem Ever

题目描述

运行代码

代码思路

HDU1049——Climbing Worm

题目描述

运行代码

代码思路

HDU1047——Integer Inquiry

题目描述

Problem - 1047

运行代码

#include <iostream>
#include <string>
#include<stdio.h>
using namespace std;
// 将字符串表示的数字相加
string add(const string& num1, const string& num2) {
    string result;
    int carry = 0;
    int i = num1.size() - 1;
    int j = num2.size() - 1;
    while (i >= 0 || j >= 0 || carry) {
        int digit1 = (i >= 0) ? (num1[i] - '0') : 0;
        int digit2 = (j >= 0) ? (num2[j] - '0') : 0;
        int sum = digit1 + digit2 + carry;
        carry = sum / 10;
        result += (sum % 10 + '0');
        i--;
        j--;
    }
    reverse(result.begin(), result.end());
    return result;
}
int main() {
    int n;
    cin >> n;
    while (n--) {
        string num, sum = "0";
        cin.ignore();  // 忽略换行符
        while (getline(cin, num) && num != "0") {
            sum = add(sum, num);
        }
        cout << sum << endl;
        if (n) {
            cout << endl;  // 输出块之间的空行
        }
    }
    return 0;
}

代码思路

  1. add 函数

    • add 函数接收两个字符串参数 num1 和 num2,这两个字符串代表了两个大整数。
    • 函数首先初始化一个空字符串 result 用于存储相加后的结果。
    • 然后,初始化进位变量 carry 为 0。
    • 接下来,从两个字符串的末尾开始(即个位数开始),进
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

筱姌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值