<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 閱讀(2223) 評論(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

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

    主站蜘蛛池模板: 在线观看免费大黄网站| 中文字幕无码免费久久99 | 无限动漫网在线观看免费| 亚洲精品网站在线观看你懂的| 无码免费一区二区三区免费播放| 亚洲国产精品一区二区成人片国内 | 18禁无遮挡无码国产免费网站| 亚洲免费视频在线观看| 久久国产乱子伦免费精品| 麻豆亚洲av熟女国产一区二| 91精品成人免费国产片| 91亚洲精品自在在线观看| 毛片免费全部播放一级| 色综合久久精品亚洲国产| 亚洲成A人片在线观看无码3D| 国产99久久久久久免费看| 亚洲av日韩av无码| 黄页网站免费观看| 亚洲精品无播放器在线播放| 免费h黄肉动漫在线观看| 两性色午夜视频免费网| 久久久久亚洲精品无码蜜桃 | 免费欧洲美女牲交视频| 一区在线免费观看| 亚洲网站在线观看| 日韩激情无码免费毛片| 亚洲免费视频一区二区三区| 亚洲精品免费在线观看| 在线免费观看一级毛片| 黄色网址免费在线观看| 久久亚洲AV成人无码软件| 午夜寂寞在线一级观看免费| 国产99久久久久久免费看| 亚洲理论片中文字幕电影| 亚洲国产成人久久一区久久| 免费人成视频在线观看网站| 亚洲高清一区二区三区电影| 亚洲乱码中文字幕综合| 成人免费视频观看无遮挡| 99在线视频免费观看| 亚洲综合av一区二区三区不卡 |