<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    love fish大鵬一曰同風起,扶搖直上九萬里

    常用鏈接

    統計

    積分與排名

    friends

    link

    最新評論

    設計一個數據結構來存儲這種超大型數字并且實現加減

    package liaojiyong.net.blogjava; 

      

    public class BigInt 

        
    static int [] ArrOne = new int [1000]; 

      

        
    static int [] ArrOne2 = new int [1000]; 

      

        
    static int [] ArrOne3 = new int [1000]; 

      

        
    static int [] ArrOne4 = new int [1000]; 

      

        
    static StringBuffer intString ; 

      

        
    static int token = 0

      

        
    public static StringBuffer Arr( int [] ArrOne2) 

           intString 
    = new StringBuffer(); 

           
    int token1 = 0

           
    for ( int i = ArrOne2. length - 1; i >= 0; i--

               
    if (ArrOne2[i] != 0

                  token1 
    = 1

               }
     

               
    if (token1 == 1

                  
    int ss = 9 - String.valueOf( ArrOne2 [i]).length(); 

                  
    if (ss > 0

                      
    for ( int mm = 0; mm < ss; mm++

                         intString .append( 
    "0" ); 

                      }
     

                  }
     

                  intString .append(ArrOne2[i] 
    + " " ); 

               }
     

           }
     

           
    if ( intString .equals( "" ) || null == intString ) 

               intString .append( 
    "0" ); 

           }
     

           
    return intString ; 

        }
     

      

        
    public static StringBuffer ArrAdd( int [] ArrOne3, int [] ArrOne4) 

           intString 
    = new StringBuffer(); 

           
    int [] arrAddResult = new int [1000]; 

           
    for ( int i = 0; i < ArrOne3. length ; i++

               
    if (ArrOne3[i] >= 1000000000 || ArrOne4[i] >= 1000000000

                  System. out .println( 
    "Data Out Out Of Range!" ); 

                  
    return null ; 

               }
     

               
    if ((ArrOne3[i] > 0&& (ArrOne4[i] > 0

                      
    && (ArrOne3[i] + ArrOne4[i] + token >= 1000000000)) 

                  arrAddResult[i] 
    = ArrOne3[i] - 1000000000 + ArrOne4[i] + token ; 

                  token 
    = 1

               }
     else 

                  arrAddResult[i] 
    = ArrOne3[i] + ArrOne4[i] + token ; 

                  token 
    = 0

               }
     

           }
     

           
    return Arr(arrAddResult); 

        }
     

      

        
    public static void main(String[] args) 

           ArrOne3 [
    0= 11

           ArrOne3 [
    1= 11111111

           ArrOne3 [
    2= 111111111

           ArrOne4 [
    0= 1111

           ArrOne4 [
    1= 11

           ArrOne4 [
    2= 111111111

           System. out .println( 
    "Arr = " + Arr( ArrOne3 ).toString()); 

           System. out .println( 
    "ArrAdd(ArrOne3, ArrOne4) = " 

                  
    + ArrAdd( ArrOne3 , ArrOne4 ).toString()); 

      

        }
     

      

    }





    減法和加法差不多,所以就不寫了
    Arr = 111111111 011111111 000000011
    ArrAdd(ArrOne3, ArrOne4) = 222222222 011111122 000001122
     

    posted on 2007-03-20 14:24 liaojiyong 閱讀(2234) 評論(5)  編輯  收藏 所屬分類: Java

    評論

    # re: 設計一個數據結構來存儲這種超大型數字并且實現加減 2007-03-20 14:52 BeanSoft

    java.math.BigInteger 和 java.math.BigDecimal 實現了任意精度的整數和浮點數的計算.... 哥們還是不錯的, 有創意!

    提供用于執行任意精度整數算法 (BigInteger) 和任意精度小數算法 (BigDecimal) 的類
    http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/math/package-summary.html  回復  更多評論   

    # re: 設計一個數據結構來存儲這種超大型數字并且實現加減 2007-03-20 15:33 lang

    當年的面試題 ,不過自己沒寫出程序來,只是大致的描述了思路   回復  更多評論   

    # re: 設計一個數據結構來存儲這種超大型數字并且實現加減 2007-03-20 17:23 liaojiyong

    package liaojiyong.net.blogjava;

    import java.math.BigInteger;

    public class BigIntegerTest {
    public static void main(String[] args) {
    BigInteger x = new BigInteger(
    "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111");
    BigInteger m = new BigInteger(
    "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111");
    BigInteger result = new BigInteger("0");
    result = result.add(x).add(m);
    System.out.println("result=" + result);
    }
    }


    result=2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222


    多謝 @BeanSoft
    但要求設計一個數據結構,而不是現成的數據結構
      回復  更多評論   

    # re: 設計一個數據結構來存儲這種超大型數字并且實現加減 2007-03-20 17:57 BeanSoft

    那就只能用當年學數據結構描述計算機加減法的原理來做了....  回復  更多評論   

    # re: 設計一個數據結構來存儲這種超大型數字并且實現加減 2007-03-20 18:01 dennis

    存儲成字符串,通過棧來實現加減,這是當年做過的一道數據結構題  回復  更多評論   

    主站蜘蛛池模板: 亚洲一区爱区精品无码| 日韩电影免费在线观看中文字幕| 亚洲无线观看国产精品| 1000部国产成人免费视频| aaa毛片视频免费观看| 亚洲AV无码精品国产成人| 久久亚洲AV成人无码| 中文字幕亚洲图片| 国产亚洲一区二区三区在线不卡 | 一区二区亚洲精品精华液 | 午夜福利不卡片在线播放免费| 黄人成a动漫片免费网站| 亚洲精品日韩专区silk| 亚洲尹人香蕉网在线视颅| 伊人亚洲综合青草青草久热| 在线观看亚洲精品国产| 亚洲午夜爱爱香蕉片| 国产亚洲情侣一区二区无码AV| 亚洲av无码乱码在线观看野外| 国产精品公开免费视频| 免费无遮挡无码永久在线观看视频| 无码人妻一区二区三区免费手机| 最新猫咪www免费人成| 性做久久久久免费观看| 久久久久亚洲av毛片大| 亚洲AV无码日韩AV无码导航| 亚洲AV美女一区二区三区| 亚洲性色高清完整版在线观看| 亚洲综合色丁香婷婷六月图片| 视频一区二区三区免费观看| 一级毛片视频免费| 91热久久免费精品99| 国产高清免费在线| 亚洲国产老鸭窝一区二区三区| 亚洲免费福利视频| 无遮挡免费一区二区三区| 免费h视频在线观看| 午夜免费福利影院| 久久亚洲日韩看片无码| 国产久爱免费精品视频| 大学生一级特黄的免费大片视频|