不使用系统自带的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(); 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安全错误
数据库的锁怎样保障安全
燕京理工学院网络安全
苹果12邮件服务器没有响应
sql盲注猜测数据库
红星美凯龙软件开发岗怎么样
网络安全信息管理与评估
网络安全审查办法的施行
网络安全小卫士网址
中国中铁网络安全宣传周答案
游戏服务器与以太坊
我的世界网易服务器开作弊
计算机应用 软件开发
如何修改服务器管理口网络地址
网络技术展会价格定位
贵阳餐饮点餐软件开发公司
传感器网络技术发展的瓶颈
网络安全有必要读研吗
wetool显示服务器连接失败
如何连接数据库与eclipse
数据库连接池c3p0使用
敏捷软件开发具有哪些共同的特征
税务网络安全的重要性
珠海触摸软件开发
sql 数据库对比工具
渝中区软件开发哪家好
商机在线湖北网络技术有限公司
特斯拉有数据库吗
地球网络技术图片
邮件服务器搭建要多长时间
数据库技术三级难么
互联网信息科技有限公司