大数相加
https://blog.csdn.net/xujunabc999/article/details/47374303
https://www.cnblogs.com/maydow/p/4782482.html
解法1:使用java自带的BigDecimal类
import java.math.BigDecimal; import java.util.Scanner; public class test1 { public static void main(String[] args) { String s1="123456789123456789"; String s2="123456789123456789"; BigDecimal bigDecimal=new BigDecimal(s1); BigDecimal bigDecimal1=new BigDecimal(s2); BigDecimal add = bigDecimal.add(bigDecimal1); System.out.println(add); } }
解法2:
按照正常的加法运算,相加进位的方式。使用StringBuilder存储我们相加的结果。
import java.math.BigDecimal; import java.util.Scanner; public class test1 { public static void main(String[] args) { String t1 = "123456789123456789"; String t2 = "123456789123456789"; System.out.println(getStr(t1, t2)); } public static String getStr(String a, String b) { int l = a.length(); int s = b.length(); String longString = l > s ? a : b; String shortString = l <= s ? a : b; l = longString.length(); s = shortString.length(); longString = new StringBuilder(longString).reverse().toString(); shortString = new StringBuilder(shortString).reverse().toString(); StringBuilder stringBuilder = new StringBuilder(); boolean carry = false; for (int i = 0; i < s; i++) { char cl = longString.charAt(i); char cs = shortString.charAt(i); int il = cl - '0'; int is = cs - '0'; int nx = il + is + (carry ? 1 : 0); if (nx > 9) { carry = true; stringBuilder.append((char) ('0' + nx - 10)); } else { carry = false; stringBuilder.append((char) ('0' + nx)); } } if (s == l && carry) { stringBuilder.append('1'); return stringBuilder.toString(); } String str = longString.substring(s, l); for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); int nx = c - '0' + (carry ? 1 : 0); if (nx > 9) { carry = true; stringBuilder.append((char) ('0' + nx - 10)); } else { carry = false; stringBuilder.append((char) ('0' + nx)); } } if (carry) stringBuilder.append('1'); return stringBuilder.reverse().toString(); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)