Java 大数加法HdAcm1002
1 import java.util.Scanner;
2
3
4 public class Main {
5 public static void main(String[] args) {
6 Scanner cin = new Scanner(System.in);
7 int n = cin.nextInt();
8 String num1 = "";
9 String num2 = "";
10 int m = 1;
11 while(m <= n){
12 num1 = cin.next();
13 num2 = cin.next();
14 int len1 = num1.length();
15 int len2 = num2.length();
16 int lenMin = len1 < len2 ? len1:len2;
17 int lenMax = len1 > len2 ? len1:len2;
18 char[] res = new char[lenMax+1];
19 //开始进位 为 0
20 int jinwei = 0;
21 //从两个字符串的尾部开始计算
22 for(int i = 1; i <= lenMin; i++){
23 int a = num1.charAt(len1 - i) - '0';
24 int b = num2.charAt(len2 - i) - '0';
25 if(a + b + jinwei <= 9){
26 //res 的长度为 lenMax
27 res[lenMax + 1 - i] = (char)(a + b + jinwei + '0');
28 jinwei = 0;
29 }
30 else{
31 res[lenMax + 1 - i] = (char)(a + b - 10 + jinwei + '0');
32 jinwei = 1;
33 }
34 }
35 //将长字符串的值赋给res
36 if(lenMax == len1){
37 for(int j = len1 - lenMin - 1; j >= 0;j--) {
38 int a = num1.charAt(j) - '0';
39 if( a + jinwei <= 9){
40 res[j+1] = (char)(a + jinwei + '0');
41 jinwei = 0;
42 }
43 else{
44 res[j+1] = (char)(a + jinwei - 10 + '0');
45 jinwei = 1;
46 }
47 }
48 }
49 else{
50 for(int j = len2 - lenMin - 1; j >= 0;j--) {
51 int a = num2.charAt(j) - '0';
52 if( a + jinwei <= 9){
53 res[j+1] = (char)(a + jinwei + '0');
54 jinwei = 0;
55 }
56 else{
57 res[j+1] = (char)(a + jinwei - 10 + '0');
58 jinwei = 1;
59 }
60 }
61 }
62 System.out.println("Case" + " " + m + ":");
63 if(jinwei == 1){
64 res[0] = '1';
65 System.out.println(num1 + " " + "+" + " " + num2 + " " + "=" + " " + String.valueOf(res));
66 }
67 else {
68 System.out.println(num1 + " " + "+" + " " + num2 + " " + "=" + " " + String.valueOf(res, 1, lenMax));
69 }
70 if(m < n){
71 System.out.println();
72 }
73 m++;
74 }
75 cin.close();
76 }
77 }
Java 大数加法HdAcm1002的更多相关文章
- hdu 1002 Java 大数 加法
http://acm.hdu.edu.cn/showproblem.php?pid=1002 PE 由于最后一个CASE不须要输出空行 import java.math.BigInteger; i ...
- java实现大数加法、乘法(BigDecimal)
之前写过用vector.string实现大数加法,现在用java的BigDecimal类,代码简单很多.但是在online-judge上,java的代码运行时间和内存大得多. java大数加法:求a+ ...
- 51 Nod 1005 大数加法【Java大数乱搞,python大数乱搞】
1005 大数加法 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出2个大整数A,B,计算A+B的结果. Input 第1行:大数A 第2行:大数B (A,B的长度 ...
- Java实现大数加法运算的几种方法
大数加法 思路一:定义String变量str1和str2分别存储输入的两个大数,定义num1[]和num2[]两个int型数组,将两个字符串分别逐个字符逆序存入数组,定义sum[]数组存放求和结果,使 ...
- Java实现 蓝桥杯VIP 算法提高 大数加法
算法提高 大数加法 时间限制:1.0s 内存限制:256.0MB 问题描述 输入两个正整数a,b,输出a+b的值. 输入格式 两行,第一行a,第二行b.a和b的长度均小于1000位. 输出格式 一行, ...
- JAVA大数运算
java大数是个好东西,用起来方便,代码短. 代码如下: import java.util.*; import java.math.*; public class Main { public stat ...
- HDU1002大数加法
大数加法 c++版: #include <map> #include <set> #include <stack> #include <queue> # ...
- JAVA大数类练手
今天突然看到了OJ上的大数类题目,由于学习了一点大数类的知识.果断水了6道题......都是非常基础的.就当的练手的吧. 学到的只是一些大数类的基本操作.以后多做点这样的题,争取熟练运用水大数题... ...
- 收藏的一段关于java大数运算的代码
收藏的一段关于java大数运算的代码: package study_02.number; import java.math.BigDecimal; import java.math.BigIntege ...
随机推荐
- Cent OS 7 本地yum源配置与安装
一.本地yum源 1.添加一个新的yum源配置文件dvd.repo(文件名字自定义) vi etc/yum.repos.d 添加新的内容: name=rhel_dvd ...
- GIS数据资源下载
GeoJSON数据下载 1.全国.省.市.县级geojson数据下载 地址:http://datav.aliyun.com/tools/atlas/#&lat=33.5219039961561 ...
- 解决proto文件转换时提示“Note that enum values use C++ scoping rules, meaning that enum values are siblings of their type, not children of it. ”
前言: 想将.proto文件转换成.pb文件时一直报错,一开始以为是文件编码格式的问题,后来将文件改成windows下的utf-8格式后,又出现了新的报错(见下图).百度了很久,才找到解决方法. &q ...
- CSS 格式 设置标签间距 和 input slot
作者:张艳涛 日期:2020-07-29 CSS设置俩个标签的间距 及 Input Slots <div> <div class="m-b-20 ovf-hd"& ...
- mysql中的with rollup得到group by的汇总信息
使用mysql中的with rollup可以得到每个分组的汇总级别的数据: 表如下: CREATE TABLE `test3` ( `id` int(5) unsigned NOT NULL AUT ...
- .net 知新:【3】.net 5 项目结构说明和发布部署
.net 5的项目目录结构和.net framework有些明显的变化,包括显示结构和项目文件,从这两个方面看看有哪些变化. 项目目录结构 就以上篇用的demo项目为例([.net 知新:[2] .N ...
- Windows影子用户创建与3389连接
#当获得一条shell后,可以创建一个影子用户,通过影子用户可以行驶正常用户的所有权限与功能,并且只可在注册表中被检测出来---(应急响应注册表很重要) 1.首先需要拥有权限创建一个Administr ...
- Android全新UI编程 - Jetpack Compose 超详细教程
1. 简介 Jetpack Compose是在2019Google i/O大会上发布的新的库.Compose库是用响应式编程的方式对View进行构建,可以用更少更直观的代码,更强大的功能,能提高开发速 ...
- js绕过-前端加密绕过
前端加密解密 目录 前端加密解密 前言 前端加密定位方法 加密绕过实例 其他情况 前言 日常我们在工作时做安全测试或者日常的漏洞挖掘中,往往会遇到请求加密,参数加密的情况,而且绝大部分都是前端加密的情 ...
- 掌握JavaScript中的Promise,实现异步编程
事件循环 基本介绍 JavaScript是一门单线程的编程语言,所以没有真正意义上的并行特性. 为了协调事件处理.页面交互.脚本调用.UI渲染.网络请求等行为对主线程造成的影响,事件循环(event ...