zoukankan      html  css  js  c++  java
  • 大整数相加算法

    不说了,直接上代码

    package com.learning;
    
    public class bigDecimal {
        public static void main(String[] args){
            System.out.println(bigNumberSum("4267097523189999999999" ,"9548125312989777665443"));
        }
    
        /**
         * 大整数相加,利用数组存储
         * 原理:利用竖式相加,对两个数进行反转,再按位相加,大于10进1,最终得到的结果再反转
         * @param num1
         * @param num2
         * @return
         */
        private static String bigNumberSum(String num1,String num2){
            //反转第一个数
            char[] charsA = new StringBuffer(num1).reverse().toString().toCharArray();
            //反转第二个数
            char[] charsB = new StringBuffer(num2).reverse().toString().toCharArray();
    
            //计算结果的长度为最长位数+1
            int maxLen = charsA.length > charsB.length ? charsA.length+1 : charsB.length+1;
            int result[] = new int[maxLen];
            /**
             * 算法核心
             */
            for (int i=0;i<result.length;i++){
                int temp = result[i];
                if(i<charsA.length){
                    temp += charsA[i]-'0';
                }
                if(i<charsB.length){
                    temp += charsB[i]-'0';
                }
                if(temp > 10){
                    temp = temp-10;
                    result[i+1]=1;
                }
                result[i]=temp;
            }
    
            /**
             * 结果反转
             */
            StringBuilder sb = new StringBuilder();
            for(int i = result.length-1;i > 0;i--){
                if(i==result.length-1 && result[i] == 0){
                    continue;
                }
                sb.append(result[i]);
            }
            return sb.toString();
        }
    }
  • 相关阅读:
    h264 流、帧结构
    H264 帧结构分析、帧判断
    sigaction
    sigaction 用法实例
    sigaction函数的使用
    linux c 之signal 和sigaction区别
    linux 信号signal和sigaction理解
    Hamcrest使用
    Junit4中的新断言assertThat的使用方法
    Hamcrest Tutorial
  • 原文地址:https://www.cnblogs.com/eyesmoon/p/9983087.html
Copyright © 2011-2022 走看看