public class Solution {
public int length = 0; public Object[] numToArrays(int num) {
List<Integer> list = new ArrayList<Integer>();
while (num / 10 != 0) {
list.add((num) % 10);
num /= 10;
}
list.add(num % 10);
return list.toArray();
} public Object[] stringToArrays(String s1){
Object[] strs = new Integer[s1.toCharArray().length];
char[] chs = s1.toCharArray();
for(int i=strs.length-1;i>=0;i--){
strs[strs.length-1-i] = Integer.parseInt(String.valueOf(chs[i]));
}
return strs;
} public int[] bigSum(Object a, Object b) {
length = 0;
boolean isUp = false;
int[] result = new int[10000];
Object[] as = null;
Object[] bs = null;
if(a instanceof String){
as = stringToArrays((String)a);
bs = stringToArrays((String)b);
}else if(a instanceof Integer){
as = numToArrays((int)a);
bs = numToArrays((int)b);
} int i = 0;
int s = Math.min(as.length, bs.length);
Object[] larrays = as.length >= bs.length ? as : bs;
int l = larrays.length;
for (; i < s; i++) {
int c = (int) as[i] + (int) bs[i] + result[i];
if (c >= 10) {
// 进位,需增高一位
result[i + 1] += 1;
// 本位取余
result[i] = c % 10;
if (i + 1 >= s) {
isUp = true;
}
} else {
result[i] = c; }
length++;
}
int flag=0;
if (isUp){
length++;
flag=1;
}
isUp = false;
// 处理不等长
if (s != l) {
for (int k = length-flag; k < l; k++) {
int temp = result[k] + (int) larrays[k];
if (temp >= 10) {
result[k] = temp % 10;
result[k + 1] = 1;
if (k + 1 >= l) {
isUp = true;
}
} else {
result[k] = temp;
}
length++;
}
if(flag==1){
length--;
}
}
if (isUp)
length++;
return result;
} public static void main(String[] args) {
// TODO Auto-generated method stub
Solution s = new Solution();
int[] list = s.bigSum("164455462456282903781237128937128937812937812973891272389456456222","123245445243512");
for (int i = s.length - 1; i >= 0; i--) {
System.out.print(list[i]);
}
} 输出:164455462456282903781237128937128937812937812973891395634901699734

Java 大数A+B的更多相关文章

  1. java大数

    java大数还是很好用的! 基本加入: import java.math.BigInteger; import jave.math.BigDecimal; 分别是大数和大浮点数. 首先读入可以用: S ...

  2. JAVA大数运算

    java大数是个好东西,用起来方便,代码短. 代码如下: import java.util.*; import java.math.*; public class Main { public stat ...

  3. java大数总结【转】

    java大数(2013长春网络赛)--hdu4762总结一下:1.java提交类要写Main.2.读取大数. Scanner read=new Scanner(System.in); BigInteg ...

  4. HDU5047Sawtooth(java大数)

    HDU5047Sawtooth(java大数) 题目链接 题目大意:在一个矩形内画n个"M".问如何画可以把这个矩形分成最多的区域. 给出这个区域的数目. 解题思路:最好的方式就是 ...

  5. JAVA大数类

    JAVA大数类api http://man.ddvip.com/program/java_api_zh/java/math/BigInteger.html#method_summary 不仅仅只能查J ...

  6. HDU4762(JAVA大数)

    Cut the Cake Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  7. ZOJ3477&JAVA大数类

    转:http://blog.csdn.net/sunkun2013/article/details/11822927 import java.util.*; import java.math.BigI ...

  8. 多校第五场 归并排序+暴力矩阵乘+模拟+java大数&amp;记忆化递归

    HDU 4911 Inversion 考点:归并排序 思路:这题呀比赛的时候忘了知道能够用归并排序算出逆序数,可是忘了归并排序的实质了.然后不会做-- 由于看到题上说是相邻的两个数才干交换的时候.感觉 ...

  9. 收藏的一段关于java大数运算的代码

    收藏的一段关于java大数运算的代码: package study_02.number; import java.math.BigDecimal; import java.math.BigIntege ...

  10. java大数判断相等

    java大数判断相等: 1.equals()方法2.compareTo()方法区别:2.00与2.0 equals()方法判断不等,compareTo()方法判断相等,科学的说法可以看java api ...

随机推荐

  1. A窗口消失B窗口弹出

    一.设计窗口 1) file---new--Application,新建一个窗体,设置该窗体的属性:Caption==登录窗口 2) procedure TForm1.btn1Click(Sender ...

  2. C语言的位运算的优势

    位运算加速技巧1. 如果乘上一个2的倍数数值,可以改用左移运算(Left Shift) 加速 300% x = x * 2;x = x * 64;//改为:x = x << 1; // 2 ...

  3. [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds...

    INSERT INTO `ftms_active_dealer`(dealer_code,dealer_name,active_id,dealer_state)VALUES('415A1','贺磊'1 ...

  4. vue.js中ajax请求

    <div id="app"> <table style="border-collapse: collapse"> <thead&g ...

  5. MyBatis 源码分析——介绍

    笔者第一次接触跟MyBatis框架是在2009年未的时候.不过那个时候的他并不叫MyBatis,而是叫IBatis.2010年的时候改为现在的名字--MyBatis.这几年过去了,对于笔者来讲有一点陌 ...

  6. 将 ext_net 连接到 router - 每天5分钟玩转 OpenStack(145)

    上一节完我们创建了外部网络 ext_net,接下来需要将其连接到 Neutron 的虚拟路由器,这样 instance 才能访问外网. 点击菜单 Project -> Network -> ...

  7. We Chall-Encodings: URL -Writeup

    MarkdownPad Document html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,ab ...

  8. 如何在Oracle中复制表结构和表数据 【转载】

    1. 复制表结构及其数据: create table table_name_new as select * from table_name_old 2. 只复制表结构: create table ta ...

  9. JS 与 OC

    做项目需要从网页点击跳转到app的一个页面上,并且需要获取参数. 当时后台给写的参数是这样的.自己打开浏览器看的源码 JavaScript:window.location.href=   这句话在js ...

  10. react构建淘票票webapp,及react与vue的简单比较。

    前言 前段时间使用vue2.0构建了淘票票页面,并写了一篇相关文章vue2.0构建淘票票webapp,得到了很多童鞋的支持,因此这些天又使用react重构了下这个项目,目的无他,只为了学习和共同进步! ...