前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java数据结构之顺序表应用之大整数求和

java数据结构之顺序表应用之大整数求和

作者头像
林老师带你学编程
发布2022-11-30 10:33:58
2080
发布2022-11-30 10:33:58
举报
文章被收录于专栏:强仔仔

本章讲顺序表的应用之大整数求和。java中int,long,float,double都有他们自己的精度值,如果超过精度就没办法进行运算了。这里可以用顺序表进行大整数运算。

下面上代码看具体案例,进行解析:

代码语言:javascript
复制
package SequenceList;
public class LargeIntegerSum {
	public int[] add(int aa[],int bb[]){
		int[] a=new int[aa.length];
		int[] b=new int[bb.length];
		for(int j=aa.length-1;j>=0;j--){
			a[aa.length-1-j]=aa[j];
		}
		for(int j=bb.length-1;j>=0;j--){
			b[bb.length-1-j]=bb[j];
		}
		int a_length=a.length;
		int b_length=b.length;
		int c_length=0;
		if(a_length>b_length){
			c_length=a_length;
		}else{
			c_length=b_length;
		}
		int[] c=new int[c_length];
		int flag=0;
		int i=0;
		while(i<a_length && i<b_length){
			c[i]=(a[i]+b[i]+flag)%10;
			flag=(a[i]+b[i]+flag)/10;
			i++;
		}
		for(;i<a_length;i++){
			c[i]=(a[i]+flag)%10;
			flag=(a[i]+flag)/10;
		}
		for(;i<b_length;i++){
			c[i]=(b[i]+flag)%10;
			flag=(b[i]+flag)/10;
		}
		if(flag==1){
			int[] temp=c;
			c=new int[c_length+1];
			for(int ii=0;ii<temp.length;ii++){
				c[ii]=temp[ii];
			}
			c[c.length-1]=1;
		}
		int cc[]=new int[c.length];
		for(int j=cc.length-1;j>=0;j--){
			cc[cc.length-1-j]=c[j];
		}
		return cc;
	}
	public static void main(String[] args) {
		LargeIntegerSum l=new LargeIntegerSum();
		int a[]={9,2,3};
		int b[]={9,1,9};
		int[] c=l.add(a, b);
		for(Integer i:c){
			System.out.print(i);
		}
		System.out.println();
	}
}

本案例是通过数组来存储大整数的,可以运算特别大的加法运算。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档