使用Stack堆栈集合大数据运算

package com.sta.to;

import java.util.Iterator;
import java.util.Stack; public class DaMax { public void jiaFa(String value1, String value2) { /**
* 更多资料欢迎浏览凯哥学堂官网:http://kaige123.com * @author 小沫
*/ // 把字符串用toCharArray拆成字符
char[] c1 = value1.toCharArray();
char[] c2 = value2.toCharArray(); // 申请好2个Stack集合准备把字符放进去
Stack numvalue1 = new Stack();
Stack numvalue2 = new Stack();
// 进栈
for (char c : c1) {
numvalue1.push(c);
}
for (char c : c2) {
numvalue2.push(c);
}
//new好一个缓存池,接收sum
StringBuffer buffer = new StringBuffer();
int jw = 0;//进位
//用常用类Math获取最长的长度
int count = Math.max(c1.length, c2.length); //把长的拿来循环
for (int i = 0; i < count; i++) {
//用来存放出栈的值
int num1;
int num2;
//每一次出栈的值转为int 才能进行运算
try {
num1 = Integer.parseInt(numvalue1.pop().toString());
} catch (Exception e) {
num1 = 0;//如果异常那就抛出0
}
try {
num2 = Integer.parseInt(numvalue2.pop().toString());
} catch (Exception e) {
num2 = 0;
}
//把num1和num2引用的值加上jw交给sum
int sum = num1 + num2 + jw;
if (sum >= 10) {
//sum大于或等于10 那就要先前一位数进1
jw = 1;
buffer.append(sum % 10);//把总和用取摸后的余数放进缓冲池
} else {
jw = 0;//不大于或等于10 jw就为0 直接把总和交给缓冲池
buffer.append(sum);
}
}
if (jw == 1) {
//问jw还等不等于1,还等于说明最前位数需要多个1 如 99+1=100
buffer.append(1);
}
buffer.reverse();// 把数值反过来
System.out.println(buffer);
}
}

测试类:

package com.sta.to;

import java.nio.Buffer;

public class Test {

	public static void main(String[] args) {

		DaMax ys = new DaMax();

		ys.jiaFa("10", "5");//10+5
ys.jiaFa("15", "50");//15+50
ys.jiaFa("999999999999999", "1");//999...+1
ys.jiaFa("99", "1");//99+1
ys.jiaFa("80", "80");//80+80
ys.jiaFa("8", "7");//8+7
}
}

最新文章

  1. 1-Spark高级数据分析-第一章 大数据分析
  2. centos 7.0 nginx 1.7.9 安装过程
  3. HDU 5877 dfs+ 线段树(或+树状树组)
  4. Brocade,Cisco SAN Switch命令对比
  5. JIRA 6.3.6版本部署
  6. why we use Symbols in Hash
  7. BZOJ3642 : [CEOI 2014] Cake
  8. P1018 乘积最大
  9. 转载: scikit-learn学习之K-means聚类算法与 Mini Batch K-Means算法
  10. hibernate中openSession()跟getCurrentSession()方法之间的区别
  11. .net+easyui系列--Pagination 分页
  12. linux 下makefile
  13. Codeforces Round #292 (Div. 1) - B. Drazil and Tiles
  14. phpword的几个坑
  15. 远程控制编写之屏幕传输 MFC实现 屏幕截图 发送bmp数据 显示bmp图像
  16. Ultimus BPM 零售和快消品行业应用解决方案
  17. [原创]Modelsim后仿真
  18. eclipse 开发环境问题
  19. [sh]top添加到crontab不生效问题解决
  20. 爬虫、网页分析解析辅助工具 Xpath-helper

热门文章

  1. nodeJS实战:自定义模块与引入,不同模块的函数传递及回调处理,exports与module.exports(基于nodejs6.2.0)
  2. webuploader插件,我踩得坑
  3. 流畅的python学习笔记:第三章
  4. ArcGIS Earth(原谷歌地球)如何获取高精度矢量地图数据?(shp文件/要素类/kml)
  5. css3动画小案例
  6. flask笔记二
  7. java实现Excel的导入、导出
  8. Spring Boot1.5.4 连接池 和 事务
  9. 【Android Developers Training】 103. 查询当前地点
  10. 使用 sitemesh/decorator装饰器装饰jsp页面(原理及详细配置)