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

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

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

    love fish大鵬一曰同風(fēng)起,扶搖直上九萬里

    常用鏈接

    統(tǒng)計

    積分與排名

    friends

    link

    最新評論

    設(shè)計一個數(shù)據(jù)結(jié)構(gòu)來存儲這種超大型數(shù)字并且實現(xiàn)加減

    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: 設(shè)計一個數(shù)據(jù)結(jié)構(gòu)來存儲這種超大型數(shù)字并且實現(xiàn)加減 2007-03-20 14:52 BeanSoft

    java.math.BigInteger 和 java.math.BigDecimal 實現(xiàn)了任意精度的整數(shù)和浮點數(shù)的計算.... 哥們還是不錯的, 有創(chuàng)意!

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

    # re: 設(shè)計一個數(shù)據(jù)結(jié)構(gòu)來存儲這種超大型數(shù)字并且實現(xiàn)加減 2007-03-20 15:33 lang

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

    # re: 設(shè)計一個數(shù)據(jù)結(jié)構(gòu)來存儲這種超大型數(shù)字并且實現(xiàn)加減 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
    但要求設(shè)計一個數(shù)據(jù)結(jié)構(gòu),而不是現(xiàn)成的數(shù)據(jù)結(jié)構(gòu)
      回復(fù)  更多評論   

    # re: 設(shè)計一個數(shù)據(jù)結(jié)構(gòu)來存儲這種超大型數(shù)字并且實現(xiàn)加減 2007-03-20 17:57 BeanSoft

    那就只能用當(dāng)年學(xué)數(shù)據(jù)結(jié)構(gòu)描述計算機加減法的原理來做了....  回復(fù)  更多評論   

    # re: 設(shè)計一個數(shù)據(jù)結(jié)構(gòu)來存儲這種超大型數(shù)字并且實現(xiàn)加減 2007-03-20 18:01 dennis

    存儲成字符串,通過棧來實現(xiàn)加減,這是當(dāng)年做過的一道數(shù)據(jù)結(jié)構(gòu)題  回復(fù)  更多評論   

    主站蜘蛛池模板: 亚洲最新视频在线观看| 亚洲精品国产电影| 亚洲欧洲精品在线| 黄色网址在线免费| 亚洲精品国产字幕久久不卡 | 亚洲高清视频在线观看| 一级特黄录像视频免费| 亚洲精品无码激情AV| 国产亚洲日韩在线a不卡| 又黄又大又爽免费视频| 国产亚洲人成在线影院| 日韩精品亚洲专区在线观看| 无码AV动漫精品一区二区免费 | 51精品视频免费国产专区| 亚洲国产精品国自产拍AV| 久久国产乱子伦精品免费不卡 | 国产无遮挡吃胸膜奶免费看视频| 丁香婷婷亚洲六月综合色| 在线观看免费大黄网站| 日韩亚洲人成网站| 曰批全过程免费视频网址| 亚洲国产成人精品青青草原| 日韩精品成人无码专区免费| 亚洲国产日韩综合久久精品| 一区二区免费视频| 久久久无码精品亚洲日韩京东传媒| 91老湿机福利免费体验| 亚洲人成在线精品| 四虎影视精品永久免费| 成人免费乱码大片A毛片| 亚洲综合久久成人69| 无码一区二区三区免费视频| 精品亚洲国产成人av| 国产偷v国产偷v亚洲高清| 久草视频免费在线| 国产AV日韩A∨亚洲AV电影| 国产亚洲人成网站观看| 啦啦啦高清视频在线观看免费| 疯狂做受xxxx高潮视频免费| 亚洲国产精品无码专区| 免费一本色道久久一区|