码迷,mamicode.com
首页 > 编程语言 > 详细

如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算

时间:2014-10-10 19:54:34      阅读:446      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   ar   for   数据   sp   div   

package interview_10_10;

import org.junit.Test;

public class T1 {

    /**
     * 如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算)。
     */
    @Test
    public 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 < lenb ? lena : lenb;

        String strtemp = "";
        for (int i = (maxlength - minlength); i > 0; i--) { // 计算左边需要补几个0
            strtemp += 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;
    }
}

 

如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算

标签:style   blog   color   使用   ar   for   数据   sp   div   

原文地址:http://www.cnblogs.com/chengshuang/p/4016194.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!