<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 殘夢追月 閱讀(5585) 評論(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,好像思想上跟你的第二個差不多。  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲AV成人精品日韩一区| 亚洲ⅴ国产v天堂a无码二区| 亚洲伊人久久大香线焦| 免费无码毛片一区二区APP| 亚洲av永久无码精品网站| 人妻在线日韩免费视频| 亚洲精品国产日韩无码AV永久免费网 | 特级精品毛片免费观看| 亚洲avav天堂av在线不卡| 91香蕉在线观看免费高清| 亚洲男女性高爱潮网站| 直接进入免费看黄的网站| 国产精品公开免费视频| 色窝窝亚洲av网| 亚洲综合伊人久久综合| 国产免费一区二区视频| 免费国产成人高清视频网站| 午夜在线亚洲男人午在线| mm1313亚洲国产精品美女| 精品日韩99亚洲的在线发布| 无码一区二区三区免费视频 | 国产精品久久久久久亚洲小说 | 免费国产美女爽到喷出水来视频| 男女交性无遮挡免费视频| 日本红怡院亚洲红怡院最新| 最近中文字幕大全免费视频| 亚洲另类无码专区首页| 国产日韩成人亚洲丁香婷婷| 3344永久在线观看视频免费首页 | 亚洲国产成人爱av在线播放| 中国人免费观看高清在线观看二区| 亚洲AV无码乱码国产麻豆 | 黄页网站在线观看免费高清| 综合偷自拍亚洲乱中文字幕 | 中文字幕亚洲激情| 最近中文字幕mv免费高清视频8| 国产精品亚洲专区无码牛牛| 亚洲成AV人片一区二区| 国产在线不卡免费播放| 精品无码无人网站免费视频| 激情婷婷成人亚洲综合|