当前位置: 首页 > news >正文

珠海建站模板源码/营销技巧美剧

珠海建站模板源码,营销技巧美剧,做你的爱人3在线观看,你第一个物流网站建设方案通常情况,实现大数运算是通过BigInteger和BigDecimal两种方法。这两种方法分别表示不可变的任意精度的整数和不可变的有符号的任意精度的十进制数(浮点数)。主要用于高精度计算中。这两个类使得java中的大数,高精度运算变得很简单。但本文介绍的并不是通…

通常情况,实现大数运算是通过BigInteger和BigDecimal两种方法。这两种方法分别表示不可变的任意精度的整数和不可变的有符号的任意精度的十进制数(浮点数)。主要用于高精度计算中。这两个类使得java中的大数,高精度运算变得很简单。但本文介绍的并不是通过上述两种方法实现Java中的大数运算。

主要的思想是:把两个数存在String中了,然后将每个数字取出,放到数组,由最末位开始计算,算加法,判断是否进位,进位则前位+1,若超过长度,则copy到新的数组。

代码如下:

public class BigIntAdd {

private int[] array;

//声明一个数组

//计算大数相加的函数

public static String bigAdd(BigIntAdd fisrtNum, BigIntAdd secondNum) {

String result = "";

Boolean falg = false;

//判断数组是否越界的标志

int[] arrayOne;

int[] arrayTwo;

int[] arrayThree = null;

//把较长的字符串放到arrayOne数组中,因为要把计算结果放到arrayOne数组中

if (fisrtNum.instance().length >= secondNum.instance().length) {

arrayOne = fisrtNum.instance();

arrayTwo = secondNum.instance();

} else {

arrayOne = secondNum.instance();

arrayTwo = fisrtNum.instance();

}

for (int i = 0; i < arrayTwo.length; i++) {

if (arrayOne[i] + arrayTwo[i] < 10) {

//不需要进位时

arrayOne[i] = arrayOne[i] + arrayTwo[i];

} else if (arrayOne[i] + arrayTwo[i] >= 10) {

//需要进位时

arrayOne[i] = arrayOne[i] + arrayTwo[i] - 10;

if ((i + 1) < arrayOne.length) {

arrayOne[i + 1] = arrayOne[i + 1] + 1;

//下一位的值加1

} else {

//当arrayOne的长度不够时要把其复制到arrayThree中

falg = true;

arrayThree = new int[arrayOne.length + 1];

System.arraycopy(arrayOne, 0, arrayThree, 0,arrayOne.length);

arrayThree[arrayOne.length] = 1;

//把arrayThree最高位赋值1,等价于进位的1

}

}

}

//把数组arrayThree中的元素全部的拼接为字符串

if (falg) {

for (int i : arrayThree) {

result += i;

}

} else {

for (int i : arrayOne) {

result += i;

}

}

//把结果反转返回

return new StringBuffer(result).reverse().toString();

}

//初始化数组方法

private int[] instance() {

return array;

}

//初始化构造方法

public BigIntAdd(String num) {

StringBuffer sb = new StringBuffer(num);

String string = sb.reverse().toString();

//实现字符串反转,便于计算

array = new int[string.length()];

//把字符串转化为数组

for (int i = 0; i < string.length(); i++) {

array[i] = Integer.valueOf(string.substring(i, i + 1));

}

}

public static void main(String [] args){

String result=BigIntAdd.bigAdd(new BigIntAdd("5211111111"), new BigIntAdd("4099999999"));

System.out.println(result);

}

}

结果:

5685ccee0d157a97933b35ecaa931f68.png

总结

以上就是本文关于java编程实现两个大数相加代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

http://www.jmfq.cn/news/4732039.html

相关文章:

  • 温州网站建设honmau/如何优化
  • 网站的动态新闻数据库怎么做/推广专员
  • 高端网站建设服务商/google网页版登录入口
  • 网站建设_免费视频/百度百家号官网登录
  • 济南做网站哪好/朋友圈产品推广文案
  • 建筑公司网站首页/直通车推广技巧
  • 大邯郸网站/360网站关键词排名优化
  • 智汇团建网站登录平台/百度指数官网入口登录
  • 做网站先用dw还是asp/办公软件速成培训班
  • 企业做网站需要那些条件/头条热点新闻
  • 科技企业网站/百度24小时人工客服电话
  • js网站跳转代码/谷歌代运营
  • 西安正规网站建设公司/杭州网站优化搜索
  • 网站建设程序员做什么/绍兴网站快速排名优化
  • 绍兴做网站公司/百度广告投放代理商
  • 做支付网站/seo排名优化
  • 做网站哪家强/网络游戏推广员
  • 好的网站制作平台/万能的搜索引擎
  • 电商网站的成本/东莞新闻最新消息今天
  • 手机不想访问指定网站怎么做/seo名词解释
  • 航天桥网站建设/台州关键词首页优化
  • 重庆建设工程管理网/榆林seo
  • 焦作专业网站建设费用/查权重工具
  • 织梦做社交网站合适吗/搜索引擎优化的英语简称
  • 自己做简单的网站/真正免费建站
  • 公司介绍网站怎么做/站长工具下载app
  • 怎么建立织梦网站/网站优化公司推荐
  • 电子商务商城网站建设/惠州seo排名公司
  • nas的wordpress的端口/搜狗seo排名软件
  • 在上阿里云做网站/三只松鼠有趣的软文