java题目 HJ57 高精度整数加法
描述
输入两个用字符串 str 表示的整数,求它们所表示的数之和。
数据范围: 1 \le len(str) \le 10000 \1≤len(str)≤10000
输入描述:
输入两个字符串。保证字符串只含有'0'~'9'字符
输出描述:
输出求和后的结果
示例1
输入:
9876543210 1234567890
输出:
11111111100
1 import java.util.Scanner; 2 import java.math.BigInteger; 3 4 public class Main { 5 public static void main(String[] args) { 6 Scanner scan = new Scanner(System.in); 7 while (scan.hasNext()) { 8 String s1 = scan.next(); 9 String s2 = scan.next(); //输入两个数 10 disp(s1, s2); 11 } 12 } 13 14 public static void disp(String s1, String s2) { 15 int m = s1.length() -1; 16 int n = s2.length() -1; 17 StringBuffer sf = new StringBuffer(); 18 int carry = 0; //进位使用 19 while(m >=0 || n >=0) { 20 char c1 = m >= 0 ? s1.charAt(m--) : '0'; //取字符串最后一位相加,当字符串没有后用‘0’替换 21 char c2 = n >= 0 ? s2.charAt(n--) : '0'; 22 int number = c1-'0' + c2 -'0' + carry; //末尾两位字符相加的和 23 sf.append(number % 10); //当前末尾相加后的值 24 carry = number / 10; //进位的值 25 } 26 if(carry == 1) //最后的进位为1,则添加1位 27 sf.append(carry); 28 System.out.println(sf.reverse()); //字符串倒置后输出即为和 29 } 30 }
方法二
java 大整数运算
1 import java.util.Scanner; 2 import java.math.BigInteger; 3 4 public class Main { 5 public static void main(String[] args) { 6 Scanner scan = new Scanner(System.in); 7 while (scan.hasNext()) { 8 String s1 = scan.next(); 9 String s2 = scan.next(); //输入两个数 10 BigInteger a = new BigInteger(s1); //将字符串转成大整数 11 BigInteger b = new BigInteger(s2); 12 System.out.println(a.add(b)); //大整数相加 13 } 14 } 15 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix