Java 大数A+B
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的更多相关文章
- java大数
java大数还是很好用的! 基本加入: import java.math.BigInteger; import jave.math.BigDecimal; 分别是大数和大浮点数. 首先读入可以用: S ...
- JAVA大数运算
java大数是个好东西,用起来方便,代码短. 代码如下: import java.util.*; import java.math.*; public class Main { public stat ...
- java大数总结【转】
java大数(2013长春网络赛)--hdu4762总结一下:1.java提交类要写Main.2.读取大数. Scanner read=new Scanner(System.in); BigInteg ...
- HDU5047Sawtooth(java大数)
HDU5047Sawtooth(java大数) 题目链接 题目大意:在一个矩形内画n个"M".问如何画可以把这个矩形分成最多的区域. 给出这个区域的数目. 解题思路:最好的方式就是 ...
- JAVA大数类
JAVA大数类api http://man.ddvip.com/program/java_api_zh/java/math/BigInteger.html#method_summary 不仅仅只能查J ...
- HDU4762(JAVA大数)
Cut the Cake Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- ZOJ3477&JAVA大数类
转:http://blog.csdn.net/sunkun2013/article/details/11822927 import java.util.*; import java.math.BigI ...
- 多校第五场 归并排序+暴力矩阵乘+模拟+java大数&记忆化递归
HDU 4911 Inversion 考点:归并排序 思路:这题呀比赛的时候忘了知道能够用归并排序算出逆序数,可是忘了归并排序的实质了.然后不会做-- 由于看到题上说是相邻的两个数才干交换的时候.感觉 ...
- 收藏的一段关于java大数运算的代码
收藏的一段关于java大数运算的代码: package study_02.number; import java.math.BigDecimal; import java.math.BigIntege ...
- java大数判断相等
java大数判断相等: 1.equals()方法2.compareTo()方法区别:2.00与2.0 equals()方法判断不等,compareTo()方法判断相等,科学的说法可以看java api ...
随机推荐
- QT第一天学习
sudo apt-get install libqt4-dev回顾: 面向对象方法: 封装.继承.多态 封装:类 数据和操作 实现了信息隐藏 public: 类的内部 类的外部 private: pr ...
- 定制自己的Unity脚本模板
有时候想给脚本添加符合自己编程习惯的内容,或是一些个性化信息.而作为一个多多少少有点强迫症的人,这种东西要加就得每个脚本都加上,不然看着多不爽! 于是就得每添加一个脚本就去修改一下,很麻烦. 但是,在 ...
- Eclipse 使用说明
2. 使用技巧 2.1. Eclipse 打开文件所在文件夹 2.2. Mac 安装Eclipse 2.3. Eclipse 安装插件 2.4. Eclipse 工具栏不见了 2.5. Eclipse ...
- Eclipse中应用的调试
作为编程人员,程序的调试是一项基本功.在不使用IDE的时候,程序的调试多数是通过日志或者输入语句(System.out.println)的方式.可以把程序运行的轨迹或者程序运行过程中的状态显示给用户, ...
- 《微信小程序七日谈》- 第六天:小程序devtool隐藏的秘密
<微信小程序七日谈>系列文章: 第一天:人生若只如初见: 第二天:你可能要抛弃原来的响应式开发思维: 第三天:玩转Page组件的生命周期: 第四天:页面路径最多五层?导航可以这么玩: 第五 ...
- 【js 编程艺术】小制作三
1.html文件 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...
- Hadoop权威指南:数据完整性
Hadoop权威指南:数据完整性 [TOC] 常用的错误检测码是CRC-32(循环冗余校验) HDFS的数据完整性 HDFS会对写入的所有数据计算校验和,并在读取数据时验证校验和 datanode负责 ...
- Vue框架Element的事件传递broadcast和dispatch方法分析
前言 最近在学习饿了么的Vue前端框架Element,发现其源码中大量使用了$broadcast和$dispatch方法,而Element使用的是Vue2.0版本,众所周知在Vue 1.0升级到2.0 ...
- python中文编码问题深入分析(一):字符编码基础
背景:笔者作为一名刚接触python语言的新手,在实际的项目中,遇到过一些中文编码问题,初次遇到这些问题的时候,刚开始显得有些手足无措,也不知从何查起.常言道:有问题,找度娘!当我打开www.baid ...
- spring 定时任务 taskScheduler详解
spring 3.0版本后,自带了一个定时任务工具,而且使用简单方便,不用配置文件,可以动态改变执行状态.也可以使用cron表达式设置定时任务. 被执行的类要实现Runnable接口 TaskSche ...