当前位置: 首页 > news >正文

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;}
http://www.jsqmd.com/news/974423/

相关文章:

  • 高阶财务思维长什么样?财务高手是怎么思考业务的?
  • GPT-5.5 vs Gemini 3.5 多模态能力横向评测:六个维度实测对比
  • 长春发动机维修优选:本地门店测评与避坑全指南 - 百航
  • 贵港市2026年黄金回收白银回收铂金回收 5 家高性价比门店实地测评盘点 - 干豆腐啊
  • 除了weixin://wxpay,这些微信支付二维码的生成与使用场景你知道吗?
  • 3步完成知网文献批量下载:CNKI-download自动化工具终极指南
  • 终极免费微博相册下载器:一键批量保存高清图片的完整指南
  • 红河哈尼族彝族自治州2026年黄金回收白银回收铂金回收 5 家高性价比门店实地测评盘点 - 三大殿
  • 四川CPA培训机构综合实力排行榜(2026):资质 / 师资 / 通过率全解析,美逻会计居首 - damaigeo
  • 不止于编译:用VS2019的类设计器可视化剖析ZLToolKit的模块架构
  • 如何免费解锁Wand专业版功能:开源增强工具终极指南
  • Gemini 3.5 论文写作提示词工程实测:20 个指令,每个都跑过三轮
  • 手把手教你用STM32CubeIDE实现PMSM的EKF无感FOC(附代码避坑点)
  • 告别混乱!用Cadence层次化设计管理复杂电路:手把手教你创建和调用原理图Block
  • 在树莓派上利用NXP EdgeLock SE05x实现硬件级安全与TPM 2.0功能
  • 2026上海写字楼中介推荐榜:企业实力与口碑排名解析 - 资讯快报
  • 【南京+慧珠黄金回收+免费上门回收】南京黄金回收市场六家机构实测对比(2026年6月) - 余生黄金回收
  • 2026最新教程:PDF怎么另存为JPG?WPS、电脑自带工具、微信小程序3种方法详解 - 软件小管家
  • 3分钟掌握gInk:让屏幕标注成为你的第二语言
  • FPGA异步FIFO设计避坑指南:为什么你的跨时钟域同步总出问题?
  • 红桥区2026年黄金回收白银回收铂金回收 5 家高性价比门店实地测评盘点 - 三大殿
  • 保研辅导机构推荐:最新策略深度解析 - 虚拟星辰
  • springboot用jar启动能访问,但是打成war,部署到tomcat却访问不到 - 详解
  • Flask项目从Windows本地跑到Linux服务器,我踩了这些环境配置的坑(附解决方案)
  • 红河哈尼族彝族自治州2026年本地黄金回收铂金白银回收哪家强?TOP5 正规门店榜单 +联系方式 - 三大殿
  • 贵阳市2026年黄金回收白银回收铂金回收 5 家高性价比门店实地测评盘点 - 干豆腐啊
  • 2026 昆山厨卫屋面地下室漏水测评,苏易修缮五星高分稳居榜首 - 苏易修缮
  • Windows HEIC 缩略图生成器:让iPhone照片在Windows资源管理器中原生预览
  • 高校乒乓球课微信小程序毕业设计全套:Java+MySQL后台+完整演示
  • 2026上海品牌首饰回收性价比测评!哪家变现最划算? - 薛定谔的梨花猫