青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

elva

大數(shù)求和

Declaration

  該文為本人原創(chuàng),如需轉(zhuǎn)載,請(qǐng)注名原作者和本站地址,但未經(jīng)本人同意,嚴(yán)禁用于商業(yè)途徑。

Text

  由于系統(tǒng)硬件的限制,我們無(wú)法直接進(jìn)行大數(shù)的求和,但是采取一些存儲(chǔ)方面的技術(shù)來(lái)解決這個(gè)問(wèn)題。下面通過(guò)引入字符數(shù)組,并運(yùn)用小學(xué)就學(xué)習(xí)過(guò)的進(jìn)位求和算法來(lái)進(jìn)行大數(shù)的求和運(yùn)算。這里只實(shí)現(xiàn)了大整數(shù)的求和,如果需要運(yùn)用到小數(shù)求和里頭,需要改動(dòng)才行。

Code

/*
 * FILE: lns.c
 * Funciton: Count the sum of two large numbers
 */


/*
 * Author: Wu Zhangjin, <zhangjinw@gmail.com>
 * (c) 2006-11-25 dslab.lzu.edu.cn Lanzhou University
 * License GPL Version 2
 */


#include <stdio.h>        /* standard input/output functions */
#include <string.h>         /* strlen function */
#define MAX_DIGITS 10000    /* define your max digit here */

/**
 * sumof_ln - count the sum of two large numbers
 * @ln_arr: the address of the array which store the two string of larger numbers
 *
 * Description:
 * For the restrictions of the hardware, we can not count the sum of two
 * large numbers directly, but we can use some skills to work it out.
 * This function use a char array to store the large numbers, and then
 * add every char digit with the carry, until the leftmost digit. Notes that
 * if the digit of two numbers is not equal,The left aligned digit should be
 * treated espectically--you should add a carry if it exist on every left digit.
 * And also if the last carry exist,the leftmost digit should be '1'
 *
 * Returns:
 * the address point of the string of sum
 *
 * Notes:
 * you can define the maximum digit of the number by the macro MAX_DIGITS
 */


char* sumof_ln(char ln_arr[2][MAX_DIGITS])
{
    int digit_arr[2], carry, sindex, lindex, i, tmp, align_lindex;
    
    carry = 0;
    digit_arr[0] = strlen(ln_arr[0]);
    digit_arr[1] = strlen(ln_arr[1]);
    sindex = (digit_arr[0] < digit_arr[1])?0:1;
    lindex = 1 - sindex;
    align_lindex = digit_arr[lindex] - digit_arr[sindex];

    for (i = digit_arr[sindex] - 1; i >= 0; i --) {
        tmp = ln_arr[lindex][align_lindex + i] + ln_arr[sindex][i] + carry;
        ln_arr[lindex][align_lindex + i] = tmp - 48 - 10 * (carry = (tmp >= 106?1:0));
    }

    if (digit_arr[0] != digit_arr[1])
    for (i = align_lindex - 1; i >= 0 && carry; i --)    {
        tmp = ln_arr[lindex][i] + carry;
        ln_arr[lindex][i] = tmp - 10 * (carry = (tmp >= 58?1:0));

    }

    if (carry) {
        for (i = digit_arr[lindex] - 1; i >= 0; i --)
            ln_arr[lindex][i+1] = ln_arr[lindex][i];
        ln_arr[lindex][digit_arr[lindex] + 1] = '\0';
        ln_arr[lindex][0] = '1';
    }    

    return ln_arr[lindex];
}

/**
 * main - main function to call function sumof_ln
 * Description:
 * compile and link this c program and input two larger numbers, you can get the sum of them
 *
 * Notes:
 * you cannot input a number whose digit is larger than MAX_DIGITS, but you can change by modifying the macro.
 */


int main(int argc, char *argv[])
{
    char ln_arr[2][MAX_DIGITS];

    printf("Please input two large numbers: \n");
    scanf("%s %s", ln_arr[0], ln_arr[1]);

    printf("The sum is:\n%s\n", sumof_ln( ln_arr ));    
}


Demo

shell> make lns
cc     lns.c   -o lns
shell> ./lns
Please input two large numbers:
9
1
The sum is:
10
shell> ./lns
Please input two large numbers:
999999999999999999999999999999999999999999999999999999999999999999999999999999999
1
The sum is:
1000000000000000000000000000000000000000000000000000000000000000000000000000000000
shell> ./lns
Please input two large numbers:
5644687481748485751785757181534145412178758718715875187687867168716841687186716876841688676
45848587878456465146861787116876871687168418178718718768465167867817617687116761867187187971971971954521278
The sum is:
45848587878456470791549268865362623472925599712864130947223886583692805374983930584028875158688848796209954
shell> ./lns
Please input two large numbers:
144
2546
The sum is:
2690

posted on 2007-08-15 17:54 葉子 閱讀(1257) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C\C++

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲精品国产视频| 久久9热精品视频| 亚洲视频一起| 国产精品福利网站| 性刺激综合网| 欧美激情第4页| 国产精品99久久久久久人 | 激情综合色综合久久综合| 久久久久国产一区二区| 亚洲高清在线视频| 亚洲视屏一区| 国产一区二区三区四区五区美女| 久久亚洲视频| 99精品福利视频| 久久久一二三| aa日韩免费精品视频一| 国产欧美一区二区在线观看| 久久一区视频| 中日韩美女免费视频网站在线观看| 久久精品亚洲乱码伦伦中文 | 一本久久a久久精品亚洲| 国产精品成人一区二区| 久久久久久综合| 99国产精品99久久久久久粉嫩| 久久成人国产精品| 亚洲美女在线看| 国产亚洲一本大道中文在线| 欧美国产日韩亚洲一区| 亚洲精品国产精品乱码不99| 国产精品久久久久久久久借妻| 久久久久一区二区| 一区二区三区.www| 欧美国产精品中文字幕| 欧美一区二区福利在线| 亚洲美女少妇无套啪啪呻吟| 国产视频久久久久| 欧美三级中文字幕在线观看| 久久亚洲精品一区| 亚洲欧美日韩直播| 99re热这里只有精品视频| 蜜桃视频一区| 久久成人亚洲| 亚洲一区二区精品| 亚洲乱码国产乱码精品精可以看| 国产一区二区三区高清播放| 国产精品www网站| 欧美激情影音先锋| 蜜桃久久av一区| 久久久久国产精品www| 亚洲欧美成人在线| 在线综合亚洲| 亚洲精选在线| 亚洲区中文字幕| 欧美高清在线视频观看不卡| 久久天堂成人| 久久久www成人免费毛片麻豆| 亚洲欧美在线aaa| 亚洲一区二区三区欧美| 99精品国产福利在线观看免费| 伊人久久大香线蕉av超碰演员| 国产亚洲视频在线| 国产亚洲精品久久久久婷婷瑜伽| 国产精品成人一区二区三区夜夜夜| 欧美精品1区2区| 欧美国产第二页| 欧美激情一区二区| 欧美激情综合网| 欧美日韩不卡| 欧美视频日韩| 国产精品久在线观看| 国产精品福利在线观看| 国产精品久久国产愉拍 | 亚洲国产日韩欧美在线动漫| 欧美91视频| 亚洲缚视频在线观看| 欧美激情在线播放| 亚洲国产日韩欧美| 99国产精品一区| 亚洲特色特黄| 午夜精品一区二区三区在线| 亚洲欧美在线x视频| 午夜综合激情| 久久伊人免费视频| 免费中文字幕日韩欧美| 欧美国产一区二区三区激情无套| 欧美激情一区二区三区不卡| 欧美日韩一区三区四区| 国产精品入口福利| 国内自拍视频一区二区三区| 在线成人免费观看| 99精品99久久久久久宅男| 欧美77777| 欧美日韩aaaaa| 国产精品久久一卡二卡| 国产亚洲成av人片在线观看桃| 精品91在线| 日韩亚洲欧美一区二区三区| 亚洲综合色噜噜狠狠| 久久精品国产99| 亚洲高清在线| 亚洲午夜小视频| 久久亚洲精品网站| 欧美日韩中文另类| 好看的日韩av电影| 亚洲最新在线视频| 久久久久久久久一区二区| 免费亚洲电影在线| 在线一区二区日韩| 久久久久免费观看| 欧美丝袜一区二区| 永久免费精品影视网站| 亚洲一区欧美激情| 久热精品视频在线免费观看| 亚洲精品一区二区在线| 欧美在线免费观看| 欧美日韩视频专区在线播放| 国产在线拍偷自揄拍精品| 亚洲精品在线观| 久久国产精品毛片| 亚洲六月丁香色婷婷综合久久| 欧美一区1区三区3区公司| 欧美精品久久久久久久免费观看 | 亚洲视频免费在线| 久久综合网络一区二区| 99精品国产在热久久| 久久精品一区二区国产| 欧美午夜精品电影| 亚洲精品九九| 久久艳片www.17c.com| 艳女tv在线观看国产一区| 老司机免费视频一区二区| 国产美女精品免费电影| 一本色道久久综合| 欧美福利视频一区| 欧美一区二区三区播放老司机 | 欧美激情一二区| 亚洲欧美日韩专区| 欧美日韩国产精品成人| 亚洲大胆女人| 久久中文字幕一区| 欧美亚洲一级| 国产精品午夜在线| 亚洲午夜电影网| 亚洲欧洲在线播放| 欧美aaaaaaaa牛牛影院| 在线看片成人| 久久亚裔精品欧美| 久久成人精品| 国产一区二区三区网站| 欧美淫片网站| 亚洲欧美激情四射在线日 | 欧美成人自拍视频| 亚洲国产精品成人综合| 麻豆av一区二区三区| 欧美中文字幕精品| 国产在线精品自拍| 久久久久国产一区二区三区| 午夜久久久久| 亚洲一二区在线| 欧美日韩亚洲综合一区| 妖精视频成人观看www| 91久久精品国产| 欧美久久电影| 一区二区三区成人| 一本色道久久综合亚洲精品不卡| 欧美日韩日本网| 亚洲午夜精品福利| 亚洲在线观看视频| 国产视频观看一区| 久久在线免费| 久久婷婷麻豆| 亚洲精选视频免费看| 亚洲美女在线观看| 国产精品九色蝌蚪自拍| 篠田优中文在线播放第一区| 午夜精品福利一区二区三区av| 国产日韩欧美一区在线| 久久看片网站| 免费美女久久99| 日韩午夜三级在线| 9i看片成人免费高清| 国产精品手机视频| 久久网站热最新地址| 蜜桃久久精品一区二区| 亚洲激情视频在线观看| 99国内精品久久| 国产一区二区三区av电影| 免费人成精品欧美精品| 欧美日韩成人一区二区三区| 午夜日韩视频| 另类欧美日韩国产在线| 亚洲婷婷免费| 久久精品国产精品亚洲| 亚洲精品色婷婷福利天堂| 亚洲视频在线免费观看| 韩国自拍一区| 亚洲精品一区二区三区av| 国产伦一区二区三区色一情| 欧美电影在线观看| 国产精品久久影院|