• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            f(sixleaves) = sixleaves

            重劍無鋒 大巧不工

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              95 隨筆 :: 0 文章 :: 7 評論 :: 0 Trackbacks
            @import url(http://www.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 最近在學習游戲開發,又得重新看C++鳥,為了進行語法的熟悉決定再次進行刷oj,我刷的oj時杭電的oj。在1002題時候,卡了一下,但最終還是順利通過。
            大數加法是一項十分十分基本的編程技能,好鳥不啰嗦鳥。

            算法核心思想:1.將字符串按照權重轉換為整型數組中相應的位(0索引對應最低位,權重為1,是個位)。2.然后進行按照位相加運算。

            具體代碼如下。
             2 //  main.cpp
             3 //  oj
             4 //
             5 //  Created by sixleaves on 14-7-23.
             6 //  Copyright (c) 2014年 sixleaves. All rights reserved.
             7 //
             8 
             9 #include <iostream>
            10 #include <string>
            11 #include <cstdlib>
            12 const int ArSize = 1024;
            13 using namespace std;
            14 char *psResult = new char[ArSize];//   分配于堆中,不是局部變量
            15 char* sum(string a, string b);

            16 int main(int argc, const char * argv[])
            17 {
            18 
            19     int nTestCase;
            20     int i = 0;
            21     cin >> nTestCase;
            22     while (i < nTestCase) {
            23         string a,b;
            24         while (cin >> a >> b) {
            25             cout << "Case " << i + 1 <<":"<< endl;
            26             cout << a + " + " + b + " = "
            27                  <<sum(a, b) << endl;
            28             if(i + 1 != nTestCase)
            29                 cout << endl;
            30             i++;
            31             break;
            32         }
            33     }
            34     return 0;
            35 }
            36 
            37 char* sum(string a, string b) {
            38     //   進行數據的轉換,把字符串數據轉換為整數
            39     //   char *psResult = new char[ArSize];
                    //   為了提高程序速度,把這個放在了外面,不用每次都申請
            40     int nR[ArSize] = {0}, nA[ArSize] = {0}, nB[ArSize] = {0};//   并且都初始化為0
            41     int nLenA = a.length(), nLenB = b.length();
            42     for(int i = 0; i < nLenA; i++) {
            43         nA[i] = a[nLenA - i - 1] - '0';
            44     }
            45     for(int i = 0; i < nLenB; i++) {
            46         nB[i] = b[nLenB - i - 1] - '0';
            47     }
            48     //   進行相加運算
            49     int nLenMax = nLenA > nLenB? nLenA : nLenB;
            50     for(int i = 0; i < nLenMax; i++) {
            51         nR[i] += nA[i] + nB[i];
            52         if(nR[i] > 9) {
            53             nR[i] -= 10;
            54             nR[i + 1]++;
            55         }
            56     }
            57     //   轉換為字符串
            58     if(nR[nLenMax] != 0)//   如果最后一位相加有近位,則總長度加1
            59         nLenMax++;
            60     for(int i = 0; i < nLenMax; i++) {
            61         psResult[i] = nR[nLenMax - i - 1] + '0';
            62     }
            63     psResult[nLenMax] = '\0';
            64     return psResult;
            65 }
            66 
            posted on 2014-07-24 02:58 swp 閱讀(187) 評論(0)  編輯 收藏 引用 所屬分類: algorithm
            久久亚洲国产精品五月天婷| 日本久久久精品中文字幕| 思思久久精品在热线热| 亚洲中文精品久久久久久不卡| 久久久久久亚洲AV无码专区| 久久九九青青国产精品| 中文字幕精品久久| 色综合久久久久网| 无码专区久久综合久中文字幕| 99久久国产亚洲高清观看2024 | 国产成人久久精品二区三区| 狠狠色丁香久久婷婷综合图片| 国产精品久久久久9999| 成人午夜精品无码区久久| 久久精品亚洲福利| 亚洲精品高清久久| 国产精品女同久久久久电影院| 亚洲精品无码久久久久AV麻豆| 97久久精品国产精品青草| 久久精品青青草原伊人| 亚洲一区精品伊人久久伊人| 国产免费福利体检区久久| www.久久精品| 国产成人久久精品激情| 久久香蕉超碰97国产精品| 欧美日韩精品久久久免费观看| 久久久久亚洲AV成人网| 久久久精品一区二区三区| 国产精品欧美久久久天天影视 | 久久综合精品国产二区无码| 一级做a爰片久久毛片毛片| 看全色黄大色大片免费久久久| 亚洲国产天堂久久综合网站| 精品久久人人做人人爽综合| 久久久久噜噜噜亚洲熟女综合| 国产精品免费久久久久电影网| 久久久久国产一级毛片高清版| 久久久久免费精品国产| 久久精品国产精品亚洲| 亚洲国产精品综合久久一线| 亚洲国产天堂久久久久久|