java题目 HJ57 高精度整数加法

描述

输入两个用字符串 str 表示的整数,求它们所表示的数之和。
 
数据范围: 1 \le len(str) \le 10000 \1len(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 }
复制代码

 

posted @   海漠  阅读(238)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示