news 2026/6/8 12:04:17

UVa 424 Integer Inquiry

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
UVa 424 Integer Inquiry

题目描述

题目要求计算多个大整数的和。输入包含最多100100100行,每行一个非负整数(可能非常大,长度不超过100100100位),以单独一行的一个000表示输入结束。输出这些整数的总和。

输入格式

输入包含若干行,每行一个由数字组成的字符串,表示一个非负整数。最后一行是一个单独的000,表示输入结束。

输出格式

输出一行,即所有输入整数的和。

样例

输入

123456789012345678901234567890 123456789012345678901234567890 123456789012345678901234567890 0

输出

370370367037037036703703703670

题目分析

本题的核心是实现大整数加法。由于每个整数最多有100100100位,直接使用内置整数类型(如long long最多约191919位)无法存储,需要手动模拟竖式加法过程。

加法模拟

大整数加法从最低位(个位)开始逐位相加,并处理进位。具体步骤:

  1. 将两个加数按字符串形式存储,从末位向首位遍历。
  2. 对应位相加,加上上一位的进位,得到当前位的和。
  3. 当前位的数字为和模101010,进位为和除以101010
  4. 处理完所有位后,若仍有进位,则在最高位添加进位。

多整数求和

对于多个大整数相加,可以依次将每个数累加到一个结果变量中。结果变量也以字符串(或整数数组)形式存储,初始为000。每读入一个新数,将其与当前结果相加,更新结果。

实现细节

  • 使用vector<int>string存储结果,注意低位在数组前端还是后端的选择。常见做法是低位存储在索引000处,这样进位扩展时只需在末尾追加。
  • 参考代码中使用了固定长度的字符数组result(长度为110110110),从末尾开始向前存储,这样可以避免反转字符串。但需要注意输出时跳过前导零。

边界情况

  • 输入可能只有一个000,此时应输出000
  • 输入的数字可能包含前导零(如00123),但通常输入不会这样。如有前导零,加法结果应正确处理。

复杂度分析

每加一个数的时间复杂度为O(max⁡(len(result),len(num)))O(\max(\text{len}(\text{result}), \text{len}(\text{num})))O(max(len(result),len(num))),总复杂度O(总数×最大长度)O(\text{总数} \times \text{最大长度})O(总数×最大长度),完全可接受。

代码实现

// Integer Inquiry// UVa ID: 424// Verdict: Accepted// Submission Date: 2016-07-13// UVa Run Time: 0.000s//// 版权所有(C)2016,邱秋。metaphysis # yeah dot net#include<bits/stdc++.h>usingnamespacestd;intmain(intargc,char*argv[]){ios::sync_with_stdio(false);string line,result=string(110,0);while(getline(cin,line),line!="0"){intdigit=0,carry=0;intj=result.length()-1;for(inti=line.length()-1;i>=0;i--,j--){digit=line[i]-'0'+result[j]+carry;result[j]=digit%10;carry=digit/10;}while(j>=0){digit=result[j]+carry;result[j]=digit%10;carry=digit/10;j--;}}for(inti=0;i<result.length();i++){if(result[i]==0)continue;for(intj=i;j<result.length();j++)cout<<(char)(result[j]+'0');break;}cout<<endl;return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/8 12:03:18

FPGA做示波器?我用EGO1开发板+XADC+VGA,实现了心电信号的简易显示系统

基于EGO1开发板的心电信号可视化系统设计与实现 在医疗电子和生物信号处理领域&#xff0c;实时可视化心电信号对于教学演示和原型验证具有重要意义。本文将详细介绍如何利用Xilinx EGO1 FPGA开发板内置的XADC模块和VGA显示接口&#xff0c;构建一个低成本的心电信号采集与显示…

作者头像 李华
网站建设 2026/6/8 12:03:14

手把手教你申请SRRC型号核准:从工信部网站注册到拿证的全流程避坑指南

SRRC型号核准实战指南&#xff1a;中小企业高效取证全流程解析第一次接触SRRC认证的工程师们&#xff0c;往往会被各种专业术语和流程绕得晕头转向。作为深耕无线电认证领域多年的技术顾问&#xff0c;我见过太多企业因为不熟悉规则而耽误产品上市周期。本文将用最直白的语言&a…

作者头像 李华
网站建设 2026/6/8 12:03:12

AIOps 智能运维:从异常检测到根因分析的自动化实践

AIOps 智能运维&#xff1a;从异常检测到根因分析的自动化实践一、运维的"告警疲劳"&#xff1a;每天 1000 条告警&#xff0c;99% 是噪音 云原生环境下的运维面临"告警爆炸"问题。一个中等规模的 K8s 集群&#xff0c;每天可能产生上千条告警——CPU 使用…

作者头像 李华
网站建设 2026/6/8 12:03:12

MM配置实战:评估类(OMSK)与物料类型的标准映射关系解析

1. 评估类(OMSK)与物料类型的基础概念 第一次接触SAP MM模块的评估类配置时&#xff0c;我也曾被各种专业术语绕得头晕。直到有次在客户现场&#xff0c;看到仓库管理员对着系统里一堆物料发愁&#xff0c;才真正理解评估类的重要性。简单来说&#xff0c;**评估类(OMSK)**就像…

作者头像 李华
网站建设 2026/6/8 12:03:11

别再手动测接口了!用Arjun这个Python工具,5分钟自动挖出隐藏的URL参数

高效挖掘隐藏URL参数&#xff1a;Arjun自动化扫描实战指南 在Web应用安全测试中&#xff0c;未公开的URL参数往往是漏洞的藏身之处。这些隐藏参数可能是开发阶段遗留的调试接口、未及时清理的测试功能&#xff0c;或是被遗忘的后门入口。传统手动测试需要逐个猜测和验证参数&am…

作者头像 李华