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

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

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

    隨筆-42  評論-349  文章-4  trackbacks-0
    上次屁顛屁顛的跑了1k多公里去ucweb面試,本來自我感覺還不錯的,可是還是很郁悶得就給打回來了……
    ???? 其中有個筆試題是求兩個大數(比如100位)的和,我當時知道怎么做,思路也沒問題,但是在紙上劃的時候估計有些細節沒處理好,比如判斷輸入等。回來后自己重新做了一遍,把它貼出來共享,奉獻給即將面試的兄弟伙,有什么問題請拍磚。

    ??? 網絡上還有另外一個版本:

    ?? 這又是一個版本:


    By:殘夢追月
    posted on 2009-03-10 12:58 殘夢追月 閱讀(5584) 評論(20)  編輯  收藏

    評論:
    # re: java大數加法 2009-03-10 14:20 | zy.weiliang@gmail.com
    ???為什么你要自己實現,jdk本身即有大數的api,直接調用不就行了.
    除非他非要你自己實現這個算法.
    一般公司沒有這么變態吧,純粹為了考試而考試,又不是sun這樣的開發語言的公司.  回復  更多評論
      
    # re: java大數加法 2009-03-10 16:03 | 隔葉黃鶯
    String s1 = "1234567890";
    String s2 = "";
    for (int i = 0; i < 100; i++) {
    s2 += s1;
    }
    BigDecimal bd1 = new BigDecimal(s2+".123456789");
    BigDecimal bd2 = new BigDecimal(s2+".123456789");
    System.out.println(bd1.add(bd2));

    輸出是:
    2469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780.246913578

    自己算一下,或數一下是多少位了。  回復  更多評論
      
    # re: java大數加法 2009-03-10 16:35 | 張林君
    @zy.weiliang@gmail.com
    對啊,我也是這樣想的?
    或許作者不知道嗎?好像不太可能啊  回復  更多評論
      
    # re: java大數加法 2009-03-10 16:43 | 張林君
    @隔葉黃鶯
    這個什么意思啊 有問題嗎?
    這個結果整數部分是1000位啊....  回復  更多評論
      
    # re: java大數加法 2009-03-10 16:52 | 隔葉黃鶯
    小數部分還可以繼續  回復  更多評論
      
    # re: java大數加法[未登錄] 2009-03-10 17:25 | aaa
    import java.io.*;
    import java.util.*;
    import java.math.BigInteger;

    class Test{
    static final Scanner cin=new Scanner(System.in);

    public static void main(String[] args){
    while(cin.hasNext()){
    String str1=cin.next(),str2=cin.next();
    BigInteger a=new BigInteger(str1),b=new BigInteger(str2);
    System.out.println(a.add(b));
    }
    }
    }  回復  更多評論
      
    # re: java大數加法 2009-03-10 19:47 | 王兵
    后面的評論有點跑題了

    不過確實在開發過程中沒有人會自己寫一個大數相加類  回復  更多評論
      
    # re: java大數加法 2009-03-10 20:57 | 殘夢追月
    @隔葉黃鶯
    隔兄,你這個是什么意思啊?我沒搞明白耶……貌似這樣不行……  回復  更多評論
      
    # re: java大數加法 2009-03-10 21:01 | 殘夢追月
    @aaa
    where is method "add()"?  回復  更多評論
      
    # re: java大數加法 2009-03-10 22:12 | YXY
    You can find "public BigInteger add(BigInteger val)" by http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/index.html  回復  更多評論
      
    # re: java大數加法 2009-03-10 22:45 | 隔葉黃鶯
    @殘夢追月
    BigDecimal和BigInteger就有 add() 方法的。你試一試吧。  回復  更多評論
      
    # re: java大數加法[未登錄] 2009-03-11 10:13 | aaa
    @殘夢追月,
    where is method "add()"? 這是偷懶的辦法直接調用API!

    import java.math.BigInteger;

    public class BigInt {
    public static void main(String[] args) {
    String a="999";
    String b="999";
    BigInteger str1=new BigInteger(a);
    BigInteger Str2=new BigInteger(b);
    BigInteger sum=str1.add(Str2);
    System.out.println(sum);
    }
    }  回復  更多評論
      
    # re: java大數加法 2009-03-11 13:06 | 殘夢追月
    @隔葉黃鶯
    寒!我只是知道有BigDecimal,卻還不知道BigInteger ,長見識了。
    我本來想用BigDecimal的,但是題目要求是自己實現……

    我是說我沒看明白為什么……


    String s1 = "1234567890";
    String s2 = "";
    for (int i = 0; i < 100; i++) {
    s2 += s1;
    }
    BigDecimal bd1 = new BigDecimal(s2+".123456789");
    BigDecimal bd2 = new BigDecimal(s2+".123456789");
    System.out.println(bd1.add(bd2));

    空串+小數點 為什么會出現這種情況?  回復  更多評論
      
    # re: java大數加法 2009-03-11 13:07 | 殘夢追月
    @aaa
    o(∩_∩)o...,謝謝勒。長見識了,還有個BigInteger,還以為是你自己實現得……  回復  更多評論
      
    # re: java大數加法 2009-03-11 13:51 | 隔葉黃鶯
    @殘夢追月
    不是空串+小數點,用s2+".123456789" 是為了說明 BigDecimal 也能支持小數。  回復  更多評論
      
    # re: java大數加法 2009-03-11 17:19 | 殘夢追月
    @隔葉黃鶯
    額……呵呵
      回復  更多評論
      
    # re: java大數加法 2009-07-21 10:40 | Frank_Fang
    請問你這個代碼著色是怎么做的?  回復  更多評論
      
    # re: java大數加法 2009-08-17 10:16 | 殘夢追月
    @Frank_Fang
    看我頁面的源碼啊  回復  更多評論
      
    # re: java大數加法 2011-07-09 17:16 | eraser0
    一般這種題目就是考細心而已啦。。。話說用BigInteger的話還算面試題目嗎。。。UCweb在廣州也只能算一般啦,其實。。。  回復  更多評論
      
    # re: java大數加法[未登錄] 2012-05-31 22:19 | helloworld
    package acm1000;

    import java.util.Scanner;

    public class Main
    {
    public static void main(String[] args)
    {
    // TODO Auto-generated method stub
    Scanner sc = new Scanner(System.in);
    String s1, s2;
    String SUM = "";
    int t;
    int a, b;
    int num;
    num = sc.nextInt();
    boolean j = false;
    int n = 0;
    do
    {
    s1 = sc.next();
    s2 = sc.next();
    System.out.println("Case " + ++n + ":");
    System.out.print(s1 + " + " + s2 + " = ");
    SUM = "";
    a = s1.length();
    b = s2.length();

    if (a <= b)
    {

    String splus = "";
    for (int p = 0; p < b - a; p++)
    splus += "0";
    s1 = splus + s1;

    a = b;
    t = a;
    }
    else
    {
    String splus = "";
    for (int p = 0; p < a - b; p++)
    splus += "0";
    s2 = splus + s2;
    b = a;
    t = a;
    }
    j = false;
    for (int i = 0; i <= t; i++)
    {

    if ((s1.length() > 0))
    {
    String c;
    c = "" + s1.substring(a - 1, a);
    String d = s2.substring(a - 1, a);
    s1 = s1.substring(0, a - 1);
    s2 = s2.substring(0, a - 1);
    a--;
    int cToInt = Integer.parseInt(c);
    int dToInt = Integer.parseInt(d);

    int sum = cToInt + dToInt;

    if (j == true)
    {
    sum = sum + 1;
    }
    if (sum >= 10)
    {
    j = true;
    sum = sum - 10;
    }
    else if (sum < 10)
    j = false;
    SUM = sum + SUM;
    }
    }
    if (j)
    SUM = 1 + SUM;
    System.out.println(SUM);
    System.out.println();
    }
    while (--num != 0);
    }

    }


    同JAVA,好像思想上跟你的第二個差不多。  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品在线视频观看| 综合亚洲伊人午夜网| 亚洲第一成年网站大全亚洲| 中文字幕日本人妻久久久免费| 色久悠悠婷婷综合在线亚洲| 丁香花在线观看免费观看图片| 亚洲人成网站色在线入口| 人妻仑乱A级毛片免费看| 中文字幕在亚洲第一在线| av电影在线免费看| 在线亚洲午夜理论AV大片| 日韩精品在线免费观看| 亚洲影院在线观看| 国产成人免费在线| 亚洲日本乱码卡2卡3卡新区| 免费黄色毛片视频| 无遮挡国产高潮视频免费观看| 亚洲精品视频免费| 久久香蕉国产线看免费| 亚洲人成网网址在线看| 宅男666在线永久免费观看| 亚洲精品国产日韩无码AV永久免费网| 亚洲精品无码高潮喷水在线| 久久久久久成人毛片免费看| 亚洲六月丁香婷婷综合| va亚洲va日韩不卡在线观看| 两个人看的www免费高清| 亚洲啪啪免费视频| 亚洲AⅤ无码一区二区三区在线 | 免费可以看黄的视频s色| 亚洲国产av玩弄放荡人妇| 亚洲一级片内射网站在线观看| a级在线免费观看| 亚洲小说区图片区| 免费一级毛片女人图片| 久久国产免费一区二区三区| 亚洲av永久无码精品秋霞电影秋| 久久影院亚洲一区| 免费观看激色视频网站(性色)| 青青草97国产精品免费观看| 亚洲专区在线视频|