• <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>

            鍵盤上的舞者

            My Email: marckywu@gmail.com
            隨筆 - 19, 文章 - 0, 評(píng)論 - 3, 引用 - 0
            數(shù)據(jù)加載中……

            超大整數(shù)的加法運(yùn)算

                   所謂超大數(shù)就是int, 甚至long int等數(shù)據(jù)類型無(wú)法直接對(duì)其存儲(chǔ)的整數(shù)。對(duì)于這種超大數(shù)的加法運(yùn)算,我的解決方案是:
                   首先將輸入的大數(shù)轉(zhuǎn)化為字符串存儲(chǔ)起來(lái),這樣一來(lái),字符串的首字符就對(duì)應(yīng)著大數(shù)的最高位,末字符就對(duì)應(yīng)大數(shù)的最低位。
                   然后,從兩個(gè)字符串的末尾開(kāi)始取出一個(gè)字符,將其轉(zhuǎn)化為一個(gè)一位整數(shù)后進(jìn)行相加(這里相加的時(shí)候還需要加上進(jìn)位標(biāo)志的值),這樣將產(chǎn)生兩種情況:
                          一、相加后大于等于10,需要進(jìn)1位。
                          二、相加后小于10,不需要進(jìn)位。
                   待對(duì)兩個(gè)字符串中的所有位字符都處理完成后,就得到了一個(gè)相加的結(jié)果字符串,這個(gè)結(jié)果字符串的不足之處是按低位到高位的順序排列的。所以還得對(duì)其高低位的對(duì)應(yīng)字符進(jìn)行交換處理,從而得出正確的結(jié)果和字符串。。。

            大數(shù)相加的函數(shù)C代碼如下:
            /*
             *功能:addBigNum函數(shù)的功能為對(duì)兩個(gè)大數(shù)進(jìn)行相加運(yùn)算。
             *參數(shù):pa, pb指向需要相加的兩個(gè)大數(shù)的字符串表示。
             *          psum指向的緩沖區(qū)用來(lái)存儲(chǔ)相加的結(jié)果和的字符串表示。
             *返回值:無(wú)
             
            */
            void addBigNum(char *pa, char *pb, char *psum)
            {
                
            int indexa, indexb, index;
                
            int sum, addone;

                addone 
            = 0//向高位進(jìn)一標(biāo)志
                index = 0;  //psum的位置索引

                
            //indexa, indexb分別索引到字符串stra, strb的最后一個(gè)字符
                indexa = strlen(pa) - 1;
                indexb 
            = strlen(pb) - 1;
                
                
            for ( ; indexa >= 0 || indexb >= 0; indexa--, indexb--) {
                    
            //處理字符串長(zhǎng)度不同的運(yùn)算
                    if (indexa >= 0 && indexb >= 0) { 
                        sum 
            = (pa[indexa] - '0'+ (pb[indexb] - '0'+ addone;
                    } 
            else if (indexa >= 0 && indexb < 0) {
                        sum 
            = (pa[indexa] - '0'+ addone;
                    } 
            else if (indexa < 0 && indexb >= 0) {
                        sum 
            = (pb[indexb] - '0'+ addone;
                    }
                    
                    
            if (sum >= 10) {
                        
            //兩個(gè)一位數(shù)組相加最多向高位進(jìn)1
                        psum[index++= sum - 10 + '0';
                        addone 
            = 1;
                    } 
            else {
                        psum[index
            ++= sum + '0';
                        addone 
            = 0;
                    }
                }

                psum[index] 
            = '\0';
                swapStr(psum);
                
                
            return;
            }

            void swapStr(char *str)
            {
                
            //對(duì)str指向的字符串中的字符進(jìn)行逆向重排.
                int len, i;
                
            char temp;

                len 
            = strlen(str);
                
                
            for (i = 0; i < len / 2; i++) {
                    temp 
            = str[i];
                    str[i] 
            = str[len - i - 1];
                    str[len 
            - i - 1= temp;
                }
            }


            posted on 2009-06-30 16:02 Marcky 閱讀(1021) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C/C++

            九九精品99久久久香蕉| 尹人香蕉久久99天天拍| 99久久99这里只有免费的精品| 无码国内精品久久人妻| 久久99国产精品一区二区| 亚洲午夜福利精品久久 | 久久精品成人免费网站| 久久婷婷色综合一区二区| 久久久久亚洲av成人网人人软件 | 久久91精品国产91久久户| 久久久久久国产a免费观看不卡| 伊人久久大香线蕉av不卡| 国产精品嫩草影院久久| 久久精品无码午夜福利理论片| 久久免费观看视频| 色综合合久久天天综合绕视看| 亚洲精品午夜国产VA久久成人| 久久国产综合精品五月天| 国产精品久久波多野结衣| 久久久亚洲欧洲日产国码是AV| 国产99久久九九精品无码| 国产一区二区三区久久精品| 伊人色综合久久天天人手人婷 | 久久er热视频在这里精品| 国产成人精品综合久久久| 久久综合视频网站| 久久久久噜噜噜亚洲熟女综合| 99久久精品国产麻豆| 久久夜色精品国产网站| 久久毛片一区二区| 日产精品久久久久久久| 亚洲伊人久久综合中文成人网| 久久免费香蕉视频| 久久久久亚洲AV成人网人人软件| 91精品无码久久久久久五月天| 国产成人精品白浆久久69| 久久精品无码一区二区无码| 久久久久亚洲AV无码麻豆| AV无码久久久久不卡蜜桃| 亚洲国产精品久久久久| 久久99精品久久久久久噜噜|