不使用系统自带的BigInteger如何实现大整数相减
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,本篇内容主要讲解"不使用系统自带的BigInteger如何实现大整数相减",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"不使用系统自带的BigInteger
千家信息网最后更新 2025年02月05日不使用系统自带的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(); Listresult = 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安全错误
数据库的锁怎样保障安全
如皋租车软件开发
易维网络安全教育
黔西南州网络安全支队
互联网高科技演讲
宜宾软件开发哪家不错
河北省赵县网络安全检查
从数据库读取文件路径
无锡fil服务器价格
网络安全有关的图片素材
阿里云服务器防护关闭
厦门亿联网络技术有限公司股票
无锡网络技术应用
panther数据库使用
现代网络技术基础课程
如何成为优秀的软件开发工程师呢
网络安全测试器
软件开发看中的技能
网络安全学校多少分
软件开发类项目自检报告书
知网数据库价格
服务器机柜内部理线图
电脑远程服务器连接不上网
合工大数据库课件
拒绝沉迷网络安全上网承诺书
数据库设计校园信息管理系统
教育软件开发技术
公安局召开网络安全
qq上面的宝可梦服务器
计算机网络技术专业改革总结
微信一直安全加载数据库