千家信息网

不使用系统自带的BigInteger如何实现大整数相减

发表于:2024-10-15 作者:千家信息网编辑
千家信息网最后更新 2024年10月15日,本篇内容主要讲解"不使用系统自带的BigInteger如何实现大整数相减",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"不使用系统自带的BigInteger
千家信息网最后更新 2024年10月15日不使用系统自带的BigInteger如何实现大整数相减

本篇内容主要讲解"不使用系统自带的BigInteger如何实现大整数相减",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"不使用系统自带的BigInteger如何实现大整数相减"吧!

第一道题目: 字符串分割,不准使用系统自带的分割函数。

public class Myspilt {    public static void main(String[] args) {        String source = "abcdabeefabfgeeabcfffdsfsa";    // abcdabeefabfgeeabcfffdsfsa        String target = "ab";        myspilt(source, target);    }    public static void myspilt(String source, String target) {        char[] sourceCharArray = source.toCharArray();        char[] targetCharArray = target.toCharArray();        StringBuffer stringBuffer = new StringBuffer();        List result = new ArrayList<>();        for (int i = 0; i < source.length(); i++) {            int j = 0;            for (; j < target.length() && i + j < source.length(); j++) {                if (sourceCharArray[i + j] != targetCharArray[j]) {                    break;                }            }            if (j == targetCharArray.length) {                if (stringBuffer.length() > 0) {                    result.add(stringBuffer.toString());                    stringBuffer.setLength(0);                }                i = i + j - 1;            } else {                stringBuffer.append(sourceCharArray[i]);            }        }        if (stringBuffer.length() > 0) {            result.add(stringBuffer.toString());        }        System.out.println("end");    }}

第二道题目: 大整数相减,不准使用系统自带的BigInteger 来计算。

class App1 {    //       计算 a - b    public static void main(String[] args) {        String a = "454656875457421545474578457";        String b = "12454578787878454744545454578454578474516938271458457214";        mySubtract(a, b);        String a1 = "1000000000000000000";        String b1 = "999999999";        mySubtract(a1, b1);    }    public static void mySubtract(String a, String b) {        BigInteger a1 = new BigInteger(a);        BigInteger b1 = new BigInteger(b);        System.out.println(a1.subtract(b1).toString());        boolean altb = false;        if (a.length() < b.length() || (a.length() == b.length() && a.compareTo(b) < 0)) {            altb = true;            String tmp = a;            a = b;            b = tmp;        }        boolean borrow = false;        StringBuilder sb = new StringBuilder(a.length());        for (int i = a.length() - 1, j = b.length() - 1; i >= 0; i--, j--) {            char char1 = a.charAt(i);            char char2 = '0';            if (j >= 0) {                char2 = b.charAt(j);            }            if (borrow) {                char1--;            }            if (char1 < char2) {                borrow = true;                sb.append(char1 + 10 - char2);            } else {                borrow = false;                sb.append(char1 - char2);            }        }        String result = sb.reverse().toString();        result = result.replaceAll("^[0]+", "");        if(result.length() == 0){            result = "0" ;        }        if (altb) {            result = "-" + result;        }        System.out.println(result);    }}

到此,相信大家对"不使用系统自带的BigInteger如何实现大整数相减"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

系统 整数 内容 题目 学习 实用 更深 一道 兴趣 函数 字符 字符串 实用性 实际 操作简单 方法 更多 朋友 网站 频道 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 燕京理工学院网络安全 苹果12邮件服务器没有响应 sql盲注猜测数据库 红星美凯龙软件开发岗怎么样 网络安全信息管理与评估 网络安全审查办法的施行 网络安全小卫士网址 中国中铁网络安全宣传周答案 游戏服务器与以太坊 我的世界网易服务器开作弊 计算机应用 软件开发 如何修改服务器管理口网络地址 网络技术展会价格定位 贵阳餐饮点餐软件开发公司 传感器网络技术发展的瓶颈 网络安全有必要读研吗 wetool显示服务器连接失败 如何连接数据库与eclipse 数据库连接池c3p0使用 敏捷软件开发具有哪些共同的特征 税务网络安全的重要性 珠海触摸软件开发 sql 数据库对比工具 渝中区软件开发哪家好 商机在线湖北网络技术有限公司 特斯拉有数据库吗 地球网络技术图片 邮件服务器搭建要多长时间 数据库技术三级难么 互联网信息科技有限公司
0