- 浏览: 1275233 次
- 性别:
- 来自: 常州
文章分类
- 全部博客 (499)
- java (101)
- linux (82)
- mysql (30)
- javascript (45)
- Oracle (12)
- ext (14)
- 虚拟机 (1)
- 搜索引擎 (2)
- struts2 (11)
- 设计模式 (9)
- nginx (17)
- tomcat (12)
- 随想 (10)
- spring (18)
- svn (1)
- flash (3)
- UML (1)
- 数据结构 (7)
- 算法 (2)
- 网摘 (9)
- 数据库 (15)
- ibatis (3)
- jquery (31)
- lucene (1)
- hibernate (14)
- Myeclipse (4)
- 线程 (7)
- jbpm (4)
- 重构 (1)
- mantis (3)
- MediaWiki (4)
- ExtMail (1)
- MDaemon (1)
- egit (1)
- dwr (7)
- sitemesh (2)
- mybatis (1)
- ico (1)
- hadoop (5)
- jsoup (1)
- urlrewrite (2)
- jstl (1)
- spring3 (2)
- aop (2)
- 定时器 (1)
- Quartz (2)
- apache (1)
- php (1)
- security (1)
- iptables (2)
- QQ (1)
- mysqldump (1)
- vim (1)
- memcached (4)
- jad (1)
- 微博 (1)
- html5 (1)
- css3 (1)
- httpclient (10)
- google (1)
- shortUrl (1)
- json (2)
- virtualBox (1)
- mantisBT (2)
- htmlunit (1)
- selenium (2)
- mail (1)
- 正则表达式 (4)
- html (3)
- css (2)
- jatoolsPrinter (1)
- 图片处理 (1)
- hql (1)
- webservice (1)
- 分词 (3)
- 短信 (1)
- VPS (1)
- 事务 (1)
- 广告 (1)
- 画廊 (1)
- git (3)
- github (1)
- openshift (1)
- 缓存 (1)
- web (3)
- android (3)
- c3p0 (1)
- 邮箱 (1)
- memcache (2)
- windows (2)
- js (14)
- 编辑器 (1)
- 打印 (1)
- centos (5)
- boneCP (1)
- 连接池 (1)
- sql (1)
- nosql (1)
- MongoDB (1)
- 浏览器 (1)
- node (1)
- node.js (1)
- backbone.js (1)
- lazyload (1)
- Switch Off (1)
- Titanium (1)
- 网站架构 (1)
- WebDriver (1)
- APJP (1)
- 代理 (1)
- comet (1)
- kendoui (1)
- UI (2)
- 互联网 (1)
- localStorage (1)
- 记录 (1)
- 微信 (2)
- Sphinx (1)
- netty (1)
- js,mvvm,Avalon (1)
- 安卓 (1)
- Tengine (1)
- 大数据 (1)
- 手机 (1)
- paypal (1)
- SaaS (1)
- gitlab (1)
- nodejs (1)
- React (1)
- shadowsocks (0)
- vpn (0)
- 验证码 (1)
- SSL (2)
- SEO (1)
- IntelliJ (1)
- 敏捷开发 (1)
- 项目管理 (1)
- 爬虫 (1)
- 正则 (1)
- owncloud (1)
- 云存储 (1)
- ajax (1)
- pjax (1)
- jdk (1)
- zookeeper (1)
- phantomjs (1)
- ELK (1)
- springcloud (1)
- IDEA (1)
- hexo (1)
- ss (1)
- letencrypt (1)
最新评论
-
peakandyuri:
这个是有BUG的,数字小体现不出来,数字大了就不对了,但是Ja ...
java十进制转换N进制并反转换的工具类 -
ginolai:
然后是相关配置:/etc/sysconfig/iptables ...
Linux中iptables设置详细 -
bzhao:
我测试没啥区别啊!
Thread.sleep()和Thread.currentThread().sleep()区别 -
zhl549342097:
match == false
Spring Security 3.1 中功能强大的加密工具 PasswordEncoder -
hellotieye:
renzhengzhi 写道drager 写道用jsoup后解 ...
jsoup select 选择器
中兴的一道笔试题:如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算)。
package com.test; import org.apache.commons.lang.StringUtils; /** * @author jsczxy2 * */ public class BigInt { public static void main(String[] args) { BigInt a = new BigInt("367892732043217489143432876442367892732043217489143432876442367892732043217489143432876442367892732043217489143432876442"); BigInt b = new BigInt("3678927329999999999999994328736789273299999999999999943287367892732043217489143432876442367892732043217489143432876442"); System.out.println(a.toString()); System.out.println(b.toString()); System.out.println(a.add(b)); } private int[] arrayint = new int[100]; public BigInt(String num) { //分解数字到int数组中 splitNumToArray(num); } public void splitNumToArray(String num) { int j = 0; StringBuffer sb = new StringBuffer(); //数字全部翻转后分组截取后再翻转回来加入int数组,这里控制数组中每一个int元素恒定为8位不超过int最大长度 num = new StringBuffer(num).reverse().toString(); for (int i = 0; i <num.length(); i++) { if (i % 8 == 0) { if (sb != null && !sb.toString().equals("")){ arrayint[j] = Integer.valueOf(sb.reverse().toString()); j++; sb = new StringBuffer(); } } sb.append(num.charAt(i)); } if (sb != null) { arrayint[j] = Integer.valueOf(sb.reverse().toString()); } } //数组从后开始打印数字,不满8位补齐8位数字用0进行左填充 public String printArray(int[] array) { StringBuffer sb = new StringBuffer(); boolean isNotFirstInt = false; for (int i = array.length-1; i >=0 ; i--) { if (array[i] != 0) { System.out.println(i+":"+array[i]); if(isNotFirstInt && String.valueOf(array[i]).length()<8){ sb.append(StringUtils.leftPad(String.valueOf(array[i]), 8,"0")); }else{ sb.append(array[i]); if(!isNotFirstInt) isNotFirstInt = true; } } } return sb.toString(); } //BigInt数字进行加法运算 public String add(BigInt bigInt) { int[] a = this.arrayint; int[] b = bigInt.arrayint; int[] result = new int[100]; //根据各种情况进行结果赋值 for(int i=0;i<a.length;i++){ if(a[i]==0&&b[i]!=0){ result[i]=b[i]; }else if(a[i]!=0&&b[i]==0){ result[i]=a[i]; }else if(a[i]!=0&&b[i]!=0){ result[i]=a[i]+b[i]; }else{ result[i]=0; } } //处理结果数组中超过8位的int元素的进位,该int元素截掉1位后再把其后一个元素值加一 for(int i=0;i<result.length;i++){ if(String.valueOf(result[i]).length()>8){ result[i] = Integer.valueOf(String.valueOf(result[i]).substring(1)); result[i+1] = result[i+1] + 1; } } return printArray(result); } //打印BigInt数字 @Override public String toString() { return printArray(arrayint); } }
发表评论
-
[转]Spring Cloud微服务的那点事
2018-04-20 21:58 681转自:https://blog.csdn.ne ... -
[转]ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
2018-04-20 17:10 883本文转自:https://my.oschin ... -
生成无重复的hashid短地址(短随机字符串)
2017-04-26 14:57 2197具体查看项目: http://hashids.org/j ... -
2017年Struts漏洞修复:版本从2.3.15.1升级到2.3.32
2017-03-24 15:10 2014如果你当前的项目使用了Struts2.3.5至 Strut ... -
多线程爬虫Miner [转]
2016-08-01 13:49 838多线程爬虫Miner 本文转自原作者博客:http:/ ... -
JAVA关键字替换
2015-11-03 21:22 1054import java.util.ArrayList; ... -
关于java web前后端分离
2015-08-27 22:47 1940由于公司架构上需要前后端分离,这里先记录一下相关内容,待后 ... -
基于NODEJS的前后端项目分离实践
2015-06-17 14:07 1204前后端分离项目实践 本文转自:http://jiangxi ... -
paypal IPN返回
2015-05-28 10:12 20671.设定返回的地址 目标:登录paypal-->用户 ... -
根据class搜索jar包
2015-05-20 13:00 882http://grepcode.com/ -
基于DWR的点对点聊天实现 server---client
2015-04-28 16:53 1140本文转自:http://htj1231825.iteye.c ... -
Java分布式中文分词组件word分词v1.2发布
2015-04-20 12:07 809word分词是一个Java实现的分布式的中文分词组件,提供了 ... -
java开源论坛jeebbsV4发布
2015-04-08 09:56 621论坛APP的帖子新展现形式 APP即时聊天模块 ... -
开源大数据解决方案
2015-03-12 13:01 1073解决方案 开发商 类型 描述 Storm Twit ... -
根据用户IP查询所属国家(数据库版)-geoip
2015-03-06 14:44 1195关键词:geoip,最新版本GeoIP2 http:// ... -
查询用户IP所在地服务接口(淘宝)
2015-03-04 10:17 1081import java.io.BufferedReader; ... -
java内存溢出优化
2014-12-28 12:42 2202本文转自:http://www.importnew.com ... -
Tomcat6线程池(Executor Thread pool)的配置
2014-12-27 01:07 920原文地址:http://www.java2000.net/p ... -
Netty学习系列导航-开源Java高性能NIO框架推荐
2014-08-13 17:49 1349纯记录,事件驱动服务器和客户端设计: http://mus ... -
破解验证码相关:用imagemagick和tesseract-ocr破解简单验证码
2014-08-13 17:08 2960本文源自:http://hooopo.iteye.com/ ...
相关推荐
在Java编程语言中,处理大数(大数据量的整数)是常见的需求,尤其是在加密算法、金融计算或者数学运算中。Java提供了`java.math.BigInteger`类来支持大数操作,但如果我们想要自定义一个解决方案,以数组的形式存储...
源代码库通常包含了实现特定算法的编程语言代码,可能包括各种数据结构、方法和函数,用于处理大整数的操作,如加减乘除、比较、取模等。 标签 "bigint-1-0-src" 重申了主题,强调这是一个与大整数算法相关的源代码...
2. 数据结构与表示:BigInt通常通过链表、数组或二进制位数组的形式来存储大数。这种数据结构可以动态扩展以适应任意长度的数字。 3. 操作符重载:为了使得BigInt在语法上与普通整数类似,通常会实现操作符重载,如...
在计算机科学中,大整数(Big Integer)是指超过...然而,实际的高性能大整数库,如Java的`BigInteger`或C++的GMP(GNU Multiple Precision Arithmetic Library),通常会使用更高效的数据结构和算法来优化这些操作。
总的来说,理解和实现大整数加法不仅涉及到基本的数学概念,还涵盖了数据结构、算法和编程技巧。通过分析`BigInt.java`和阅读`面试编程.txt`,你可以更深入地了解这个主题,并准备应对类似的面试问题。
在标准的整型数据类型如int、long等无法满足需求时,我们需要使用特殊的数据结构和算法来实现大整数的加、减、乘、除以及取模等操作。这些操作在密码学、分布式计算、数学软件等领域有着广泛的应用。 **大整数的...
### 大整数乘法(改进):Java实现与优化 在计算机科学中,处理大整数乘法是一项挑战性的任务,特别是在传统整型数据结构(如`int`或`long`)无法满足需求时。Java语言提供了强大的库支持来处理大整数,但自定义算法...
9. **超大整数处理**:处理超大整数时,可以使用自定义数据结构,如题中所示的BigInt类,用数组存储每一位数字,并实现相应的加法运算。 10. **图形系统**:设计基本图形元件,如Point、Line、Rectangle和Triangle...
总结来说,大数四则运算是计算机科学中处理超大整数的重要手段,它涉及到数据结构的选择、高效的算法实现以及各种编程语言中的支持。理解和掌握大数运算,对于开发涉及大数据量计算的应用程序具有重要意义。
对于超大整数,可以使用一个数组来存储每一位数字,然后实现加法算法。例如,创建一个`BigInt`类,其中包含一个整型数组`ArrOne`来存储每一位数字,通过定义加法方法来实现两个超大整数的加法运算。 #### 11. 图形...
为了解决这个问题,我们可以自定义数据结构和算法来实现高精度计算。这里我们以Pascal语言为例,探讨如何编写高精度加、减、乘法的源代码。 1. **高精度加法**: 在Pascal程序`gaojing_jia`中,首先定义了一个常量...
对于超大整数,可以采用数组存储每一位数的方式,并实现相应的加法运算算法。例如,可以创建一个`BigInt`类,其中包含一个整型数组用于存储数值,并提供加法运算方法。 ```java public class BigInt { private int...
综上所述,ACM竞赛中Java的使用涵盖了基本的输入输出、字符串处理、高精度计算以及数据结构和算法的应用,掌握这些知识点对于参赛者来说至关重要。通过熟练运用这些工具,可以有效地解决竞赛中遇到的各种问题。
10. **超大整数存储和加法**:对于超大整数,可以使用数组存储每个位,如`BigInt`类中的`int[] ArrOne`。实现加法操作,遍历数组,逐位相加,考虑进位。 11. **图形系统的基本元件**:设计图形系统时,基础元件包括...
10. 超大整数处理:超大整数可通过数组或链表结构存储,例如,可以定义一个BigInt类,包含一个整数数组ArrOne存储每一位。加法运算可以采用模拟手动计算的过程,逐位相加并处理进位。 11. 图形系统设计:基本图形...