大数相加Java
题目
以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。
分析
两个字符串,定义两个指针,分别从这两个字符串的结尾开始遍历,因为可能字符串1比字符串2长度要长,因此只要两者其中有一个还没遍历玩,另一个就用0来补全空位;指针从后往前获取当前两个元素,将当前两个字符,都减去’0’,这就将字符转换成了数字,再将这两个数字和进位值相加,记得初始化进位值是0,然后定义一个变量res,res = (l+r+ans),ans = res/10; l和r分别是两个指针,ans是进位数。最后每次循环将res%10+'0’添加到StringBuilder中,最后将StringBuilder中的值翻转转换成字符串返回。
代码实现
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
public String solve (String s, String t) {
// write code here
StringBuilder builder = new StringBuilder();
int n1 = s.length()-1;
int n2 = t.length()-1;
int ans = 0;
while (n1>=0||n2>=0||ans==1){
int l = n1>=0 ? (s.charAt(n1--)-'0'):0;
int r = n2>=0 ? (t.charAt(n2--)-'0'):0;
int res = l+r+ans;
ans = res/10;
char c =(char)(res%10+'0');
builder.append(c);
}
return builder.reverse().toString();
}
大数相加Java的更多相关文章
- 用字符串模拟两个大数相加——java实现
问题: 大数相加不能直接使用基本的int类型,因为int可以表示的整数有限,不能满足大数的要求.可以使用字符串来表示大数,模拟大数相加的过程. 思路: 1.反转两个字符串,便于从低位到高位相加和最高位 ...
- poj 1503 大数相加(java)
代码: import java.math.*; import java.util.Scanner; public class Main { public static void main(String ...
- 字符串模拟大数相加——Java实现
本题是CVTE二面编程题,首先考虑返回值肯定是一个字符串(int会有溢出可能),并且两个字符串只含数字,不含”+“.”-“这种. 代码如下: public static String add(Stri ...
- POJ 1503 Integer Inquiry(大数相加,java)
题目 我要开始练习一些java的简单编程了^v^ import java.io.*; import java.util.*; import java.math.*; public class Main ...
- Java大数相加-hdu1047
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1047 题目描述: 题意有点绕,但是仔细的读了后就发现是处理大数相加的问题.注意:输入数据有多组,每组输 ...
- Java实现大数相加、相乘(不使用BigInteger)
大数相加: package algorithm; //使用BigInteger类验证 import java.math.BigInteger; public class BigAdd { public ...
- Java 大数相乘、大数相加、大数相减
思路来源:: https://blog.csdn.net/lichong_87/article/details/6860329 /** * @date 2018/6/22 * @description ...
- Java之大数相加
之前参加某公司笔试,机试题目是大数相加,两大数是字符串形式,求和. 当时讨巧用的是BigDecimal类,但是发迷糊了,以为b1.add(b2)后,和就加到b1上了,结果一直输出不对. 其实应该是这样 ...
- hdu acm-1047 Integer Inquiry(大数相加)
Integer Inquiry Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
随机推荐
- 【JSOI2019】精准预测(2-SAT & bitset)
Description 现有一台预测机,可以预测当前 \(n\) 个人在 \(T\) 个时刻内的生死关系.关系有两种: \(\texttt{0 t x y}\):如果 \(t\) 时刻 \(x\) 死 ...
- egg的基本使用
一.脚手架(可以快速生成项目) 1.新建一个项目文件夹,使用如下命令: 2.npm init egg --type=simple 3.npm i 它会根据package.json里记录的所需包进 ...
- 基于gin的golang web开发:实现用户登录
前文分别介绍过了Resty和gin-jwt两个包,Resty是一个HTTP和REST客户端,gin-jwt是一个实现了JWT的Gin中间件.本文将使用这两个包来实现一个简单的用户登录功能. 环境准备 ...
- 【Electron Playground】Electron 窗口问题汇总
作者:Kurosaki 本节旨在汇总在开发Electron 窗口可能遇到的问题,做一个汇总,后续遇到问题会持续更新. 1. 窗口闪烁问题. const { BrowserWindow } = requ ...
- Flink读写Redis(一)-写入Redis
项目pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...
- [日常摸鱼]bzoj1083[SCOI2005]繁忙的都市-最小生成树
我也不知道为什么我要来写这个-怕是写水题写上瘾了(bu #include<cstdio> #include<algorithm> #define rep(i,n) for(re ...
- (菜鸟都能看懂的)网络最大流最小割,Ford-Fulkerson及Dinic详解
关于网络流: 1.定义 个人理解网络流的意思便是由一条条水管以及一个源点S一个汇点T和一些节点组成的一张图,现在要从S点流水到T点,问怎么流才能让流到T的流量最大.边权表示的是这条水管的最大流量,假设 ...
- burpsuite进阶使用
.Burpsuite:爆破 个人建议选择pro破解版的,免费版的太鸡肋,爆破不能设置线程,速度超乎你想像 浏览器和burpsuite设置代理后,开启抓包,截获数据包后,右键选择发送到repeater修 ...
- 精尽Spring MVC源码分析 - LocaleResolver 组件
该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...
- NET 5 使用RabbitMQ以及Kafka区别
区别 1.应用场景方面RabbitMQ:用于实时的,对可靠性要求较高的消息传递上.kafka:用于处于活跃的流式数据,大数据量的数据处理上.2.架构模型方面producer,broker,consum ...