杭电OJ 1002 A + B Problem II

2023-11-18

A + B Problem II

页面数据来自(this page from): http://acm.hdu.edu.cn/showproblem.php?pid=1002

  • Time Limit: 2000/1000 MS (Java/Others)
  • Memory Limit: 65536/32768 K (Java/Others)

Problem Description

I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.

Input

The first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line consists of two positive integers, A and B. Notice that the integers are very large, that means you should not process them by using 32-bit integer. You may assume the length of each integer will not exceed 1000.

Output

For each test case, you should output two lines. The first line is "Case #:", # means the number of the test case. The second line is the an equation "A + B = Sum", Sum means the result of A + B. Note there are some spaces int the equation. Output a blank line between two test cases.

Sample Input

2
1 2
112233445566778899 998877665544332211

Sample Output

Case 1:
1 + 2 = 3

Case 2:
112233445566778899 + 998877665544332211 = 1111111111111111110

Author

Ignatius.L

Statistic | Submit | Discuss | Note

Source Code

Run ID Submit Time Judge Status Pro.ID Exe.Time Exe.Memory Code Len. Language Author
35174670 2021-01-23 14:00:13 Accepted 1002 46MS 1552K 1589 B G++ klskeleton
#include <iostream>
#include <sstream>
using namespace std;

//获取2个整数型字符串中最大的
string getStrMax(string a, string  b) {
	if (a == b)return a;
	if (a.length()==b.length()) {
		for (int i = 0; i < a.length();i++) {
			if (a[i]>b[i]) {
				return a;
			}
			else if (a[i]<b[i]) {
				return b;
			}
		}
	}
	else {
		if (a.length() > b.length()) {
			return a;
		}
		else return b;
	}
	return "";
}
 
//大整数相加
string bigIntegerSum(string a,string  b) {
	//最大字符串
	string max = getStrMax(a, b);
	//最小字符串
	string min = max == a ? b : a;
	//结果字符串
	string result;
	//2个字符串长度的差
	int sub_len = max.length() - min.length();
	//填补0
	for (int i = 0; i < sub_len; i++) {
		min = "0" + min;
	}
	//初始化result
	for (int i = 0; i < max.length(); i++)result += "0";
	for (int i = max.length()-1; i >=0; i--) {
		int maxNum, minNum, resultNum,sum;
		stringstream ss;
		ss << max[i];		//最大字符串的最后一个字符
		ss >> maxNum;
		ss.clear();
		ss << min[i];		//最小字符串的最后一个字符
		ss >> minNum;
		ss.clear();
		ss << result[i];	//目标字符的进位(1/0)
		ss >> resultNum;
		ss.clear();
		
		//和 =  a + b + 进位(1/0)
		sum = maxNum + minNum + resultNum;

		char res;
		//如果和大于10
		if (sum>=10) {
			//进位
			
			ss << sum - 10;
			ss >> res;
			result[i] = res;
			//如果索引超过 result 的长度,则增加位数,位数上的值为1
			if (i-1 < 0)result = '1' + result;
			//否则进位1
			else result[i - 1] = '1';
		}
		else {
			//不进位,直接算出结果
			ss << sum;
			ss >> res;
			result[i] = res;
		}
	}
	return result;
}

int main() {
	int n,i=0;
	cin >> n;
	while (n) {
		i++;
		string a, b;
		cin >> a >> b;
		cout << "Case " << i << ':' << endl;
		cout << a << " + " << b << " = " << bigIntegerSum(a, b)  << endl;
		//注意输出格式,最后一次不能输出空行,否则不能AC
		if (n > 1)cout <<endl;
		n--;
	}
	return 0;
}

可进一步优化,例如:如果输入的值可直接进行算术,则直接使用加法,否则使用大整数加法

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

杭电OJ 1002 A + B Problem II 的相关文章

随机推荐

  • 攻防世界(easy-apk)

    下载链接如下所示 https adworld xctf org cn media task attachments 989ca07c3f90426fa05406e4369901ff apk 使用JEB打开apk 如下所示 可知获得输入后进行
  • 嵌入式开发——文件系统部署rz、sz命令

    1 rz sz命令源码下载 下载网址 https ohse de uwe software lrzsz html 2 源码编译 tar zxvf lrzsz 0 12 20 tar gz cd lrzsz 0 12 20 configure
  • 小滴课堂-新版JavaWeb零基础到实战专题课程-19

    目录 前言 第十九章 javaweb项目实战之小滴课堂开发者论坛数据库设计 第1集 小滴课堂开发者论坛数据库ER关系图设计 第2集 小滴课堂开发者论坛Mysql相关表录入 前言 小滴课堂 旨在让编程不在难学 让技术与生活更加有趣 随着互联网
  • 转」最佳方案:迭代式开发

    前言 Fred Brooks 在 25 年前就曾写到 不要指望一次成功 无论如何你都要这样 敏捷开发 小步快跑 持续迭代 不断改进 产品升级 在用例需要之前 不要添加数据成员 在代码之前编写测试 过早的优化时万恶之源 不要过度强调代码的通用
  • 一文读懂网联-网联的业务方案和技术实现(1)

    支付产品设计必知的支付底层逻辑 网联平台全业务功能详解 2 我想 银联 大家都不陌生 我们用的银行卡基本都是银联卡 而网联想必很多人并不清楚 其实网联和银联在一个职能上平分秋色 电子支付的清算机构 我们国家并驾齐驱的2家清算机构 网联与银联
  • python学习基础(3)—循环、数据结构及函数

    循环 数据结构及函数 循环 for循环及循环嵌套 break及continue命令 while循环 列表 元组结构及字典结构 高级列表操作 高级字典操作 函数 自定义函数 系统内置函数 导入包 循环 python循环命令有两个 for循环用
  • DirectShow中H.264 SourceFilter的Pin配置

    对DirectShow SourceFilter 要在Pin上输出H 264码流 需要注意如下设置 majortype MEDIATYPE Video 73646976 0000 0010 8000 00AA00389B71 subtype
  • UNet 浅析

    文章目录 1 UNet 简介 2 UNet 详解 3 代码实例 医学图像分割 ISBI数据集 参考 1 UNet 简介 UNet 属于 FCN 的一种变体 它可以说是最常用 最简单的一种分割模型 它简单 高效 易懂 容易构建 且可以从小数据
  • 【白嫖系列】永久免费域名申请教程 eu.org

    Welcome to Aedream同学 s blog 文章目录 eu org 注册 激活注册 域名解析 eu org eu org 一个从1996开始提供免费域名的组织 其官网地址是 https nic eu org 他帮助学生 爱好者或
  • Unity的Animator与Animation之间的简单区别

    一 Animator 1 动画控制器 实现控制多个动画的播放 切换及叠加系列复杂的效果 相当于一个动画状态机 生成动画的时候不仅有动画文件 还会生成相应的 controller文件 因此占用的资源比较大 2 Animator组件介绍 Con
  • Mysql(一)三大范式、数据类型、常用函数、事务

    文章目录 一 SQL基础 1 1 SQL通用语法 1 2 SQL分类 1 2 1 DDL语句 1 2 2 DML语句 1 3 HAVNG子句和WHERE的异同点 1 4 SELECT 和 SELECT 全部字段 的写法对比 1 5 三大范式
  • C# Winform中窗体的美化—— 用IrisSkin轻松实现换肤功能

    今天经前辈提醒才知道winform窗体还有美化工具 呵呵 不得不说 孤陋寡闻了 下面总结一下irisskin2的使用步骤和遇到的问题及解决办法 1 网址 http www pc6 com softview SoftView 70918 ht
  • 解决OpenCV在Cmake时,因网络问题无法下载部分所需文件

    解决OpenCV在Cmake时 因网络问题无法下载部分所需文件 在安装CUDA Opecv进行Cmake的过程中 因为网络问题很多文件都无法下载 可以在你的opencv cache下可以看到 很多文件都是0kb的 这样肯定是不行的 我们要保
  • 6款字体转换工具网站,一键生成想要字体!

    第一字体 https www diyiziti com 图文图文吗 有图无文怎么行 平时没事儿咱也喜欢舞文弄墨一番 不过茶壶儿这书法比起名仕还是自叹不如哈 然而不得不说中国文字真的是博大精深 各种字体就像人生一样充满奇妙 第一字体网就为您提
  • postgresql 数据库版本升级 11.5升级14

    postgresql 数据库版本升级 11 5升级14 文章目录 postgresql 数据库版本升级 11 5升级14 前言 一 漏洞详情 二 版本升级 1 pg upgrade的用法 2 2 安装pg14 版本升级 后记 前言 最近因为
  • 算法_选择排序

    选择排序 选择排序的思想 对于一个给定的具有n个数的数组 从中依次找出最小 或最大 的元素 并且将它依次放到序列的起始位置 例如 4 2 7 8 10 1 5 第一次排序 1 2 7 8 10 4 5 第二次排序 1 2 7 8 10 4
  • Doris--基础--10--数据模型

    Doris 基础 10 数据模型 1 基本概念 在 Doris 中 数据以表 Table 的形式进行逻辑上的描述 一张表包括行 Row 和列 Column Row 用户的一行数据 Column 用于描述一行数据中不同的字段 1 1 Colu
  • 关于uniapp小程序端提示v-for 暂不支持循环数据问题的解决方案

    关于uniapp小程序端提示v for 暂不支持循环数据问题解决方案 需求描述 在uniapp小程序此项目中使用多层for循环时 小程序端提示 uniapp v for 暂不支持循环数据 以至于获取不到循环的数据 解决方案
  • JAVA的并发编程(八):Disruptor并发框架

    目录 一 Disruptor并发框架 1 介绍 2 关键知识点 3 实现方法 1 RingBuffer Disruptor 单线程 2 RingBuffer Squencebarrier BatchEventprocessor 多线程 单生
  • 杭电OJ 1002 A + B Problem II

    A B Problem II 页面数据来自 this page from http acm hdu edu cn showproblem php pid 1002 Time Limit 2000 1000 MS Java Others Me