问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JAVA大数相减

发布网友 发布时间:2022-04-23 03:23

我来回答

3个回答

热心网友 时间:2023-10-13 05:57

既然是“大数”,那就可能出现BigInteger长度不够的情况,所以不能直接使用楼上的方法。

关于“大数”的定义,需要楼主提供问题细节:
1.被减数、减数是否会出现负数
2.结果是否会出现负数
负数情况可先转化为绝对值的加减,然后根据大小关系为结果添加正负号解决。所以,暂时先讨论最简单、最基本的情况即 a,b都为正整数,且a>b的情况
1.建议把两个数组改成倒序排列 这样相减时可以由a[0]和b[0]开始,即int[] a = { 7, 0, 1, 8, 5, 3, 7 }; int[] b = { 2, 4, 7, 4, 5};
2.遍历两个数组a和b,a[i]-b[i],够减则直接把结果存入a[i],不够减则a[i]+10-b[i]存入a[i],并且a[i+1]=a[i+1]-1,(这里如果不够减,再借位a[i+1]=a[i+1]+10-1;a[i+2]=a[i+2]-1,以此类推,可用递归实现)遍历至b.length结束,然后再将a[i]倒序输出,即为结果。

热心网友 时间:2023-10-13 05:58

因为int类型最大值为9个9,所以超过之个范围的话,需要用BigInteger来进行操作(加减乘除都可以):

public static void main(String[] args) {
 // TODO Auto-generated method stub
 BigInteger aa =new BigInteger("10000000000000000000");
 BigInteger bb= new BigInteger("25000000");
 BigInteger sub=aa.subtract(bb);//大整数的减
 BigInteger add=aa.add(bb);//大整数的加
 BigInteger mul=aa.multiply(bb);//大整数的乘
 BigInteger div=aa.divide(bb);//大整数的除
 System.out.println(sub.toString());
 System.out.println(add.toString());
 System.out.println(mul.toString());
 System.out.println(div.toString());
}

热心网友 时间:2023-10-13 05:58

public class BigSub {
public static void main(String[] args) {
int[] a = { 7, 3, 5, 8, 1, 0, 7 };
int[] b = { 5, 4, 7, 4, 2};
BigSub.sub(a, b);
}
public static String linkIntArray(int[] array) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < array.length; i++) {
sb.append(array[i]);
}
return sb.toString();
}

public static void sub(int[] a,int[] b) {
BigInteger bigA = new BigInteger(linkIntArray(a));
BigInteger bigB = new BigInteger(linkIntArray(b));
System.out.println(bigA+"-"+bigB+"="+bigA.subtract(bigB));
}
}追问謝謝你的回答,試過可以正常執行!
因為我才剛接觸java一個月,然而老師出考試題目
對我說有些困難,所以才來這裡請求幫忙!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
脚崴了挂什么科、急急急 linux 解压缩工具--tar命令 生日祝福语闺蜜 简短独特暖心 QQ有哪些隐藏的图标??他们分别是什么??怎么样点亮?? QQ业务的各种图标怎么点亮? qq怎么点亮图标和名字 诗中书万象=求下联 大爱如山藏万象下联 中国电子展:电位器和可调电阻的区别是什么?这四点很明显 电位器的接线方法是什么 电位器的工作原理如何 牛肉怎样煮 运动减肥可以怎么样减? 要科学 Java大数类怎么表示小于(或大于)一个数 如何通过科学运动减掉肚子上的赘肉? java怎么处理大数相加 广州java短期培训哪个好 怎么科学减肥? 学java大数 据开 发,就业 怎么样? 怎么样科学的运动减肥 用java如何显示大数的每一位出来啊 如何通过科学运动减掉肚子上的赘肉? ? java求最大数和次大数 如何才能科学的运动减肥 JAVA中如何精确进行大数计算 参加Java大数据培训之后能做大数句分析师吗? 从冰箱冷冻的牛肉&#xF42E;怎么样煮才好? 冰鲜牛肉怎么快速煮烂? 木须肉怎么做好吃 木须肉家常做法,正宗木须肉怎么做 我有黑眼圈,都两年多了,怎么弄都不消,这是为什么啊?不熬夜也会有。 怎么运动减掉脂肪? java中如何对较大的数字进行计算 怎样健康科学的运动瘦大腿? java 大数问题 如何科学运动减肥? java中大数(100!+..+200!)表示问题 如何科学的减肥瘦身? Java中,如何对大数开根号啊! 运用JAVA中大数类实现大数的模运算 JAVA 大数阶乘,不用biginteger怎么做 如何选购家用的电视网络机顶盒? 网络机顶盒怎样选购,购买电视盒子有哪些需要注意? 电视机顶盒和网络机顶盒如何选择?哪一个更加实用? 智能机顶盒怎样才能买到,只能到电信吗? 如何选购网络电视机顶盒?麻烦告诉我 如何选购电视网络机顶盒? 怎么购买网络机顶盒,需注意哪些问题 如何选择网络机顶盒 网络电视机顶盒怎么选 购买注意事项 怎么在移动网上购买机顶盒