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

使用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 }
}
时间: 2024-10-27 11:18:42

使用Stack堆栈集合大数据运算的相关文章

大数据运算模型 MapReduce 原理

大数据运算模型 MapReduce 原理 2016-01-24 杜亦舒 MapReduce 是一个大数据集合的并行运算模型,由google提出,现在流行的hadoop中也使用了MapReduce作为计算模型 MapReduce 通俗解释 图书馆要清点图书数量,有10个书架,管理员为了加快统计速度,找来了10个同学,每个同学负责统计一个书架的图书数量 张同学 统计 书架1王同学 统计 书架2刘同学 统计 书架3...... 过了一会儿,10个同学陆续到管理员这汇报自己的统计数字,管理员把各个数字加

java -&gt;大数据运算(BigInteger)

大数据运算 BigInteger java中long型为最大整数类型,对于超过long型的数据如何去表示呢.在Java的世界中,超过long型的整数已经不能被称为整数了,它们被封装成BigInteger对象.在BigInteger类中,实现四则运算都是方法来实现,并不是采用运算符. BigInteger类的构造方法: BigInteger b = new BigInteger(str); 构造方法中,采用字符串的形式给出整数 四则运算代码: public static void main(Str

Date、DateFormat类、Calendar类、基本类型包装类、System类、Math类、Arrays类、大数据运算类

1.Date (1)概述: 时间的原点:公元1970年 一月一日,午夜0:00:00 对应的毫秒值就是0 注意:时间和日期的计算,必须依赖毫秒值 ----------------Date()获取当前时间 import java.util.Date; public class Demo06boke { public static void main(String[] args) { Date sdf=new Date(); System.out.println(sdf); } } Date(lon

Java Array和大数据运算

1.Array类 ?sort方法,用来对指定数组中的元素进行排序(元素值从小到大进行排序) //源arr数组元素{1,5,9,3,7}, 进行排序后arr数组元素为{1,3,5,7,9} int[] arr = {1,5,9,3,7}; Arrays.sort( arr ); ?toString方法,用来返回指定数组元素内容的字符串形式 int[] arr = {1,5,9,3,7}; String str = Arrays.toString(arr); // str的值为[1, 3, 5, 7

7、包装类、System、Math、Arrays、大数据运算

基本类型封装 基本数据类型对象包装类概述 *A:基本数据类型对象包装类概述 *a.基本类型包装类的产生 在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需要转换成double类型等 *b.八种基本类型对应的包装类 char Character int Integer byte Byte short Short long Long float Float double D

math,Arrays和大数据运算

Math类 概念 类似这样的工具类,其所有方法均为静态方法,并且一般不会创建对象. 常用方法 Arrays类 概念 此类包含用来操作数组(比如排序和搜索)的各种方法 大数据运算 BigInteger 原文地址:https://www.cnblogs.com/www1842564021/p/12101179.html

大数据运算系统一

 目录 一.MapReduce/Hadoop 1.编程模型 2.系统实现 3.典型算法 二.Microsoft Dryad (本文为陈世敏老师课程笔记) ---------------------------------------- 一.MapReduce/Hadoop Google 2014年推出. 1.编程模型 整体思路:程序员串行写程序 ,系统分布式并行完成,但要有很多限制,牺牲程序的功能. 数据模型:<key,value> 记录之间无序. MapReduce执行过程: +Map(ik

Java基础知识回顾-18(Math类,Arrays类和大数据运算)

public class MathDemo { public static void main(String[] args) { double x=12.2; //取绝对值 System.out.println(Math.abs(-99)); //向上取整 System.out.println(Math.ceil(x)); //向下取整 System.out.println(Math.floor(x)); //取最大值 System.out.println(Math.max(2,5)); //取

小明哥教你使用c++实现大数据之加减乘除以及模除运算

在c++中常用的数据类型有 char:1 bit,short 2 bit,int 4 bit,long long 8 bit等等,以上数据类型标识的数据大小非常有限,如果遇到大于他们能表示的范围时,计算结果就会有误,日常生活中的计算器也是如此,我国计算两个比较大的数的运算,也会出现错误,或者不能正常显示, 例如计算123456789123456789*987654321987654321 计算结果如下: 为了解决上述问题,我写了一个计算大数据四则运算以及求模的小项目,实现的功能有 + - * /