算法题:两个大数相加(java)

题目:
大数相加不能直接使用基本的int类型,因为int可以表示的整数有限,不能满足大数的要求。输入的两个大数可能正可能负

分析:
首先需要判断两个大数的正负号,使用字符串来模拟小学数学中的两个数的加减法。

代码:

/**
 * 两个大数相加,输入的两个大数的正负号不确定
 */
public class Solution {
   

    public static void main(String[] args) {
        String str1 = "8541269855";
        String str2 = "-6985326589745555";

        //返回的结果
        String res = null;

        //如果两个大数都是负数
        if(str1.charAt(0) == '-' && str2.charAt(0) == '-'){
            str1 = str1.substring(1);
            str2 = str2.substring(1);
            res = bigNumberAdd(str1, str2);
            res = "-" + res;
        }
        //如果两个大数中,一个负数,一个正数
        else if(str1.charAt(0) == '-' || str2.charAt(0) == '-'){
            if(str1.charAt(0) == '-'){
                str1 = str1.substring(1);
                if(compare(str1, str2) == 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值