分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

这个只能够用字符串的形式来处理了,因为计算机能够处理的最大是long型,本文以字符串的形式来进行超大数据的相加,理论上只要你的内存允许,相加多大的数都可以。

/**

* 超大整数相加:

* 题目要求:如果系统要使用超大整数(超过long的范围),请你设计一个数据结构来存储这种

* 超大型数字以及设计一种算法来实现超大整数的加法运算

* @author Administrator

*

*/

public class VeryBigNumAdd {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

/*

String a="1223232";

for(int i=a.length()-1;i>=0;i--)

{

System.out.print(a.charAt(i));

}

*/

VeryBigNumAdd vbn=new VeryBigNumAdd();

String a="123453243455535634535252345234677576252241234123523453664563634";

String b="123453243455535634535252345234677576252241234123523453664563634";

String result=vbn.doAdd(a,b);

System.out.println("result:"+result);

}

/**

*

* @param a 加数字符串1

* @param b 加数字符串2

* @return 结果字符串

* 分析:

* 1、取得两个字符串的长度

* 2、把两个的长度做比较,并得出较长的长度,及较短的长度

* 3、把长度较短的加数字符串,在左面补0,使之与较长的字符串一样长

* 4、从最高位,一个个数的取出来相加,当然首先得转换为整型

* 5、设置进位,如果两个数相加及加上进位大于等于10,并且这不是最左边一个字符相加,相加结果等于

*    (取出1+取出2+进位)-10,并把进位设为1;如果没有大于10,就把进位设为0,如些循环,把

*    相加的结果以字符串的形式结合起来,就得到最后的结果

*/

String doAdd(String a,String b)

{

String str="";

int lenA=a.length();

int lenB=b.length();

int maxLen=(lenA>lenB) ? lenA : lenB;

int minLen=(lenA<lenB) ? lenA : lenB;

String strTmp="";

for(int i=maxLen-minLen;i>0;i--)

{

strTmp+="0";

}

//把长度调整到相同

if(maxLen==lenA)

{

b=strTmp+b;

}else

a=strTmp+a;

int JW=0;//进位

for(int i=maxLen-1;i>=0;i--)

{

int tempA=Integer.parseInt(String.valueOf(a.charAt(i)));

int tempB=Integer.parseInt(String.valueOf(b.charAt(i)));

int temp;

if(tempA+tempB+JW>=10 && i!=0)

{

temp=tempA+tempB+JW-10;

JW=1;

}

else

{

temp=tempA+tempB+JW;

JW=0;

}

str=String.valueOf(temp)+str;

}

return str;

}

}

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

超大整数相加,超过了long的范围,你要怎么做相关推荐

  1. java实现两个最大整数相加_JAVA-实现两个超大整数相加

    思路: 第一步,把整数倒序存储,整数的个位存于数组0下标位置,最高位存于数组长度-1下标位置.之所以倒序存储,更加符合我们从左到右访问数组的习惯. 我们以 426709752318 + 9548125 ...

  2. Java中使用BigDecimal进行浮点数精确计算 超大整数 浮点数等计算,没有数位限制...

    (注:前面写了一个超大整数相加的类,参见: 超大整数相加,超过了long的范围,你要怎么做!,后来有朋友评论说BigDecimal可以完全实现我的这这个功能,刚开始的时候,我还不服气,据我所知那里有这 ...

  3. Java中使用BigDecimal进行浮点数精确计算 超大整数 浮点数等计算 没有数位限制

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! (注:前 ...

  4. c语言乘法超过长整数,C语言中超大整数乘法运算

    <C语言中超大整数乘法运算>由会员分享,可在线阅读,更多相关<C语言中超大整数乘法运算(8页珍藏版)>请在人人文库网上搜索. 1.C 语言中超大整数乘法运算在计算机中,长整型 ...

  5. 用C语言计算超大乘法,C语言中超大整数乘法运算.docx

    C语言中超大整数乘法运算.docx .C 语言中超大整数乘法运算在计算机中,长整型 long int 变量的范围是 -2147483648 至 2147483647 ,因此若用长整型变量做乘法运算,乘 ...

  6. 19位整数 java_为什么阿里巴巴Java开发手册中强制要求超大整数禁止使用Long类型返回?...

    在阅读<阿里巴巴Java开发手册>时,发现有一条关于前后端超大整数返回的规约,具体内容如下: 这个问题在之前和前端联调的时候发生过,发现根据脚本 id 去审批的时候,状态没有变化,后来和前 ...

  7. 大数计算器概念c语言,用C语言求两个超大整数的和

    用C语言求两个超大整数的和 在生活中,我们经常需要计算非常大的数,但是任何一种计算器都有计算范围,一旦超过计算范围就会有精度的损失.或许有同学认为我们可以通过程序来解决,比如对于C语言来说,我们定义一 ...

  8. 【Java】算法积累1——大整数相加

    算法刚刚入门,每次记录下自己所学的知识总结以及理解,希望能够帮助大家,如有内容有错误或可改进的地方,欢迎一起探讨,一起进步,在此也要感谢WYSCODER学长给我的学习建议 目录 方法一: 思路: 代码 ...

  9. java 阶乘 最大整数_Java版超大整数阶乘算法-10,0000级

    当计算超过20以上的阶乘时,阶乘的结果值往往会很大.一个很小的数字的阶乘结果就可能超过目前个人计算机的整数范围.如果需求很大的阶乘,比如1000以上完全无法用简单的递归方式去解决.在网上我看到很多用C ...

最新文章

  1. python输入字符串转换为公式_将python字符串转化成长表达式的函数eval实例
  2. 20162329 2017-2018-1 《程序设计与数据结构》第十一周学习总结
  3. Linux基础命令小结
  4. 手把手带你入门Java中File类
  5. 一个基于ngrx的计数器例子
  6. jzoj3801-[NOIP2014模拟8.23]骰子【数学期望】
  7. 一些常用的meta标签及其作用
  8. 怎么调试内存溢出的c++代码_使用jvisualvm排查一次内存溢出(OOM)过程
  9. Ubuntu18.04-安装opencv3.2.0_contrib
  10. 鸢尾花数据集分类--神经网络
  11. 数据结构 图-关键路径:AOE网络
  12. 如何打开.yml文件
  13. matlab 求不规则体积,matlab,求不规则三维图形体积?
  14. 海贼王里面路飞的一些台词翻译
  15. 下一代微型计算机,「简讯」GTX 1650完整规格曝光;任天堂推迟下一代Switch上市时间…...
  16. marquee---jsp中的滚动字幕标记
  17. 运维常用工具命令/知识总结
  18. 本博客早已废除。请移步新地址
  19. 游泳馆会员管理系统功能图
  20. 计算机的用户账户,电脑用户名_电脑用户名是什么

热门文章

  1. 深度解读MRS IoTDB时序数据库的整体架构设计与实现
  2. 论文解读丨空洞卷积框架搜索
  3. 基于LiteOS Studio零成本学习LiteOS物联网操作系统
  4. 大厂运维必备技能:PB级数据仓库性能调优
  5. 干货分享丨轻松玩转 Huawei LiteOS 传感框架
  6. 西瓜哥:公有云也“All-Flash”?
  7. 弹性文件服务解密 -- 块存储、文件存储、对象存储的区别
  8. Kotlin学习笔记 第三章 函数 高阶函数 lambda表达式 内联函数
  9. 红橙Darren视频笔记 面试题 为什么view获取宽高为0 onCreate onResume view.post源码浅析(继承activity api27)
  10. 计算机图形学E7——OpenGL 交互式三角形裁剪直线