Java使用LinkedList实现大数相加
来源:互联网 发布:淘宝评价100字范文 编辑:程序博客网 时间:2024/06/08 06:25
Java.math中有实现大数操作的BigInteger类和BigDecimal类,分别进行整数的大数操作和小数的大数操作。但是下面的程序是用LinkedList实现了大数操作,LinkedList作为List的实现类,链表的数据结构。相比ArrayList,它有着增加修改速度快的优势。代码如下:
public class Test{public static void main(String[] args) {// TODO Auto-generated method stubList<Integer> bigNumber = new LinkedList<>();for(int i = 0; i <30; i++) {bigNumber.add(7);}List<Integer> bigNumber1 = new LinkedList<>();for(int i = 0; i < 30; i++) {bigNumber1.add(6);}System.out.println("bigNumber:"+bigNumber.toString());System.out.println("bigNumber1:"+bigNumber1);//Test.addMethod(bigNumber1, bigNumber1);List<Integer>m = Test.addMethod(bigNumber, bigNumber1);for(int i =m.size() - 1; i >= 0 ; i--) {System.out.print(m.get(i));//顺序放进去,倒序输出}}public static List<Integer> addMethod(List<Integer> a, List<Integer> b) {List<Integer> sum = new LinkedList<>();int carry = 0; //存储十位上的数for(int i = 0; i < 30; i++) {//sum.add(a.get(i) + b.get(i));int temp ; //存取元素相加的值if (carry > 0) {temp = a.get(i) + b.get(i) + carry; //当有十位数时就要加上carry = 0;}else {temp = a.get(i) + b.get(i);}if(temp >= 10) {int u = temp%10;//存取个位int y = temp/10; //存取十位sum.add(u);carry = y;if (i == 29) {//当加到最后一位时,应该把十位也放到结果里sum.add(carry);}}else {sum.add(temp);}}return sum;}}
0 0
- Java使用LinkedList实现大数相加
- java实现大数相加
- Java实现大数相加
- 大数相加 相乘 java实现
- java实现大数相加问题
- JAVA实现两个大数相加
- Java不使用BigDecimal,实现两个大数相加
- C/C++和JAVA 实现大数相加
- java ACM 大数相加使用的bigInteger
- 大数相加(C实现
- 实现两个大数相加
- 数组实现大数相加
- 实现两个大数相加!
- 字符串实现大数相加
- 大数相加(JAVA)
- java解决大数相加
- java中大数相加
- 大数相加-Java版
- (一一八)利用block实现链式编程
- STM32窗口看门狗_原子战舰WWDG例程学习笔记
- 零基础学python-2.9 代码块与缩进
- Linux 下定时器的实现方式分析
- Java基本数据类型
- Java使用LinkedList实现大数相加
- 图算法之拓扑排序
- android模拟器创建时的PANIC: Could not open:错误的解决
- 关于对象
- JSP调用存储过程
- SSH常用命令选项
- 文件/目录权限设置命令chmod的详细用法
- 写一个函数验证哥德巴赫猜想
- Linux输出1970-1-1以来的毫秒计数