• <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>
            posts - 183,  comments - 10,  trackbacks - 0

            大數(shù)乘法,利用字符串?dāng)?shù)組保持被乘數(shù)、乘數(shù)和商。
            從左到右依次運(yùn)算,兩個(gè)循環(huán)即可。
            在內(nèi)循環(huán)內(nèi)有
            result[i + j + 1] += (lhs[i] - '0') * (rhs[i] - '0');
            最高位空著,因?yàn)橛锌赡軓拇胃呶贿M(jìn)過來位。
            然后從左往右依次進(jìn)位。
            之后再檢測左邊的最高位是否為 0,若為 0,右移。
            將結(jié)果轉(zhuǎn)存。

            注意,這里高位一直在最左邊,沒有逆轉(zhuǎn)。
            如果先逆轉(zhuǎn),還是從左開始計(jì)算,即從最低位開始計(jì)算,有 result[i + j] += (lhs[i] - '0') * (rhs[i] - '0');

             1 #include <iostream>
             2 using namespace std;
             3 
             4 char* bigMultiply(char ret[], char lhs[], char rhs[])
             5 {
             6     int llen = strlen(lhs), rlen = strlen(rhs);
             7     int* result = new int[llen + rlen];
             8     int i, j;
             9     memset(result, 0sizeof (int* (llen + rlen));
            10     //for (i = 0; i < llen + rlen; ++i)
            11     //{
            12     //    result[i] = 0;
            13     //}
            14     for (i = 0; i < llen; ++i)
            15     {
            16         for (j = 0; j < rlen; ++j)
            17         {
            18             result[i + j + 1+= (lhs[i] - '0'* (rhs[j] - '0');
            19             cout << result[i + j + 1<< endl;
            20         }
            21     }
            22     for (i = llen + rlen - 1; i > 0--i)
            23     {
            24         if (result[i] >= 10)
            25         {
            26             result[i - 1+= result[i] / 10;
            27             result[i] %= 10;
            28         }
            29     }
            30     i = 0;
            31     while (result[i] == 0)
            32     {
            33         ++i;
            34     }
            35     for (j = 0; i < llen + rlen; ++i, ++j)
            36     {
            37         cout << result[i];
            38         ret[j] = result[i] + '0';
            39     }
            40     cout << endl;
            41     ret[j] = '\0';
            42     delete [] result;
            43     return ret;
            44 }
            45 
            46 int main()
            47 {
            48     char a[1000], b[1000], c[2000];
            49     while (cin >> a >> b)
            50     {
            51         cout << a << " * " << b << " = " << endl;
            52         cout << bigMultiply(c, a, b) << endl;
            53     }
            54 }

            http://hi.baidu.com/unixfy/blog/item/d52eb6f600e57a03b17ec513.html
            http://hi.baidu.com/unixfy/blog/item/97b2e4e8fc96883263d09f69.html
            posted on 2011-05-16 20:47 unixfy 閱讀(377) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久午夜电影网| 久久香蕉综合色一综合色88| 久久亚洲欧洲国产综合| 亚洲国产成人久久综合一区77| 日韩影院久久| 久久天天躁狠狠躁夜夜网站| 国产AⅤ精品一区二区三区久久 | 狠狠色噜噜狠狠狠狠狠色综合久久| 久久精品国产亚洲AV麻豆网站 | 久久99精品九九九久久婷婷| 久久天天躁狠狠躁夜夜avapp| 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 亚洲精品国产综合久久一线| av无码久久久久不卡免费网站 | 久久精品无码一区二区三区日韩 | 久久国产香蕉视频| 亚洲中文字幕无码久久2017 | 久久中文字幕人妻丝袜| 青草影院天堂男人久久| 无码AV波多野结衣久久| 久久久久18| 国产精品久久久久久久午夜片| 中文字幕久久精品 | 久久亚洲精品无码aⅴ大香| 91久久精品无码一区二区毛片| 久久青青草原亚洲av无码app| 综合久久一区二区三区| 久久久久国产一级毛片高清板| 国产精品天天影视久久综合网| 亚洲中文字幕久久精品无码喷水 | 热久久最新网站获取| 国产亚州精品女人久久久久久| 久久国产精品国产自线拍免费| 久久精品人成免费| 久久青青草原亚洲av无码app | 国产精品女同久久久久电影院| 精品国产乱码久久久久软件| 区久久AAA片69亚洲| 国产精品久久久久久久久久影院| 久久99热这里只有精品66| 人妻无码αv中文字幕久久琪琪布 人妻无码精品久久亚瑟影视 |