使用Stack堆栈集合大数据运算
2024-08-24 13:56:21
使用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-Spark高级数据分析-第一章 大数据分析
- centos 7.0 nginx 1.7.9 安装过程
- HDU 5877 dfs+ 线段树(或+树状树组)
- Brocade,Cisco SAN Switch命令对比
- JIRA 6.3.6版本部署
- why we use Symbols in Hash
- BZOJ3642 : [CEOI 2014] Cake
- P1018 乘积最大
- 转载: scikit-learn学习之K-means聚类算法与 Mini Batch K-Means算法
- hibernate中openSession()跟getCurrentSession()方法之间的区别
- .net+easyui系列--Pagination 分页
- linux 下makefile
- Codeforces Round #292 (Div. 1) - B. Drazil and Tiles
- phpword的几个坑
- 远程控制编写之屏幕传输 MFC实现 屏幕截图 发送bmp数据 显示bmp图像
- Ultimus BPM 零售和快消品行业应用解决方案
- [原创]Modelsim后仿真
- eclipse 开发环境问题
- [sh]top添加到crontab不生效问题解决
- 爬虫、网页分析解析辅助工具 Xpath-helper
热门文章
- nodeJS实战:自定义模块与引入,不同模块的函数传递及回调处理,exports与module.exports(基于nodejs6.2.0)
- webuploader插件,我踩得坑
- 流畅的python学习笔记:第三章
- ArcGIS Earth(原谷歌地球)如何获取高精度矢量地图数据?(shp文件/要素类/kml)
- css3动画小案例
- flask笔记二
- java实现Excel的导入、导出
- Spring Boot1.5.4 连接池 和 事务
- 【Android Developers Training】 103. 查询当前地点
- 使用 sitemesh/decorator装饰器装饰jsp页面(原理及详细配置)