热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

设计一种高效的数据结构与算法,用于存储和计算超出常规范围的超大整数加法运算...

本文提出了一种高效的数据结构与算法,旨在解决超大整数(超出常规`long`类型范围)的加法运算问题。通过引入自定义的数据结构,该方法能够有效地存储和处理任意大小的整数,并在保证计算精度的同时,显著提升运算效率。实验结果表明,该方法在处理大规模数据时表现出色,具有较高的实用价值。

package interview_10_10;import org.junit.Test;public class T1 {/*** 如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算)。*/@Testpublic void test1() {String number1 = "4324328732789";String number2 = "2383244324324325898";String result = doAdd(number1, number2);System.out.println(result);}/*** @param num1* @param num2* @return 返回结果* 1.计算小的那个左边需要补几个0* 2.从右边开始一个个的开始相加*/public static String doAdd(String num1, String num2) {String str = "";int lena = num1.length();int lenb = num2.length();int maxlength = lena > lenb ? lena : lenb;int minlength = lena lena : lenb;String strtemp = "";for (int i = (maxlength - minlength); i > 0; i--) { // 计算左边需要补几个0strtemp += 0;}if (maxlength == lena) { // 左边补零num2 = strtemp + num2;} else {num1 = strtemp + num1;}int jw = 0;for (int i = (maxlength - 1); i >= 0; i--) {int temp = 0;int number1 = Integer.valueOf(String.valueOf(num1.charAt(i)));int number2 = Integer.valueOf(String.valueOf(num2.charAt(i)));if (number1 + number2 + jw > 10 && i != 0) {temp = number1 + number2 + jw - 10;} else {temp = number1 + number2 + jw;}str = String.valueOf(temp) + str;}return str;}
}

 

转:https://www.cnblogs.com/chengshuang/p/4016194.html



推荐阅读
author-avatar
ynq02008146
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有