国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

高精度加法(含代碼)

這篇具有很好參考價(jià)值的文章主要介紹了高精度加法(含代碼)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

高精度加法

例 1

例如: 1111111111111+9, 列成豎式,

   1 1 1 1 1 1 1 1 1 1 1 1 1
 +                         9
 
 ---------------------------
 

先算個位,

1+9=10,
滿10, 向十位進(jìn)1。

   1 1 1 1 1 1 1 1 1 1 1 1 1
 +                         9
                         1
 ---------------------------
                           0

接下來, 處理進(jìn)位
十位: 1+1=2 -> 2

   1 1 1 1 1 1 1 1 1 1 1 1 1
 +                         9
                         1
 ---------------------------
                         2 0

百位: 無進(jìn)位, 直接照抄. 1 -> 1

   1 1 1 1 1 1 1 1 1 1 1 1 1
 +                         9
                         1
 ---------------------------
                       1 2 0

千位: 1 -> 1

萬位: ...

...: ...

最高位: 1 -> 1

最終結(jié)果:

   1 1 1 1 1 1 1 1 1 1 1 1 1
 +                         9
                         1
 ---------------------------
   1 1 1 1 1 1 1 1 1 1 1 2 0

所以, 1111111111111+9=1111111111120

例 2

1111111111111+8888888888889,
這個算式變成了高精度+高精度了。

還是列成豎式,

   1 1 1 1 1 1 1 1 1 1 1 1 1
 + 8 8 8 8 8 8 8 8 8 8 8 8 9
 
 ---------------------------
 

先算個位,

1+9=10,
滿10, 向十位進(jìn)1。

   1 1 1 1 1 1 1 1 1 1 1 1 1
 + 8 8 8 8 8 8 8 8 8 8 8 8 9
                         1
 ---------------------------
                           0

接下來, 算十位。

1+8+1=10,
滿10, 向百位進(jìn)1

   1 1 1 1 1 1 1 1 1 1 1 1 1
 + 8 8 8 8 8 8 8 8 8 8 8 8 9
                       1 1
 ---------------------------
                         0 0

千位, 萬位...以此類推。

   1 1 1 1 1 1 1 1 1 1 1 1 1
 + 8 8 8 8 8 8 8 8 8 8 8 8 9
                     1 1 1
 ---------------------------
                       0 0 0
   1 1 1 1 1 1 1 1 1 1 1 1 1
 + 8 8 8 8 8 8 8 8 8 8 8 8 9
                   1 1 1 1
 ---------------------------
                     0 0 0 0

......

   1 1 1 1 1 1 1 1 1 1 1 1 1
 + 8 8 8 8 8 8 8 8 8 8 8 8 9
   1 1 1 1 1 1 1 1 1 1 1 1
 ---------------------------
     0 0 0 0 0 0 0 0 0 0 0 0

最高位:
1+8+1=10,
向前一位進(jìn)1.

   1 1 1 1 1 1 1 1 1 1 1 1 1
 + 8 8 8 8 8 8 8 8 8 8 8 8 9
 1 1 1 1 1 1 1 1 1 1 1 1 1
 ---------------------------
   0 0 0 0 0 0 0 0 0 0 0 0 0
   1 1 1 1 1 1 1 1 1 1 1 1 1
 + 8 8 8 8 8 8 8 8 8 8 8 8 9
 1 1 1 1 1 1 1 1 1 1 1 1 1
 ---------------------------
 1 0 0 0 0 0 0 0 0 0 0 0 0 0

所以,

1111111111111+8888888888889=10000000000000=1013

   1 1 1 1 1 1 1 1 1 1 1 1 1
 + 8 8 8 8 8 8 8 8 8 8 8 8 9
 1 1 1 1 1 1 1 1 1 1 1 1 1
 ---------------------------
 1 0 0 0 0 0 0 0 0 0 0 0 0 0

代碼

  1. 首先導(dǎo)入頭文件。
// 1. Import libraries
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <algorithm>
#include <cstring>
#include <cassert>
#include <vector>
// Import namespace 'std'
using namespace std;
  1. 初始化變量。
// 2. Initialize variables
const int MAX = 1000;
char s[MAX+1];
int a[MAX+1], b[MAX+1],c[MAX+2];
  1. 定義主函數(shù)main()
// 3. Define Main Function
int main(int argc, char **argv) {
    for (int i=0;i<1001;i++) {
        s[i]='0';
        a[i]=0, b[i]=0, c[i]=0;
    } // If you use global variables, this initialization does not need used.

這里如果使用全局變量,這個初始化可以不用。
4. 輸入(包含了處理)變量

    // 4. Input and process variables
    scanf("%s",s+1);
    int lena = strlen(s+1);

    for (int i=1;i<=lena+1;i++)
        a[i] = s[lena-i+1] - '0';

    scanf("%s",s+1);
    int lenb = strlen(s+1);
    for (int i=1;i<=lenb+1;i++)
        b[i] = s[lenb-i+1] - '0';

    int lenc = (lena>lenb)?lena:lenb;
  1. 真正的高精度計(jì)算到這里才開始。計(jì)算代碼
    // 5. Calculate
    for (int i=1;i<=101;i++)
        c[i] = 0;
    for (int i=1;i<=lenc;i++) {
        // c[i] = a[i] + b[i]; <-- Wrong! 
        c[i] = a[i] + b[i] + c[i]; // <-- Correct
        // c[i] += a[i] + b[i]; <-- Plan B, Correct too
        // 處理進(jìn)位
        c[i+1] = c[i] / 10;
        c[i] = c[i] % 10;
    }
    // 處理 overflow
    if (c[lenc+1]>0)
        lenc++;
  1. 輸出
    // 6. Output
    for (int i=lenc;i>=1;i--)
        printf("%d", c[i]);
    return 0;
}

附: 完整代碼

// 1. Import libraries
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <algorithm>
#include <cstring>
#include <cassert>
#include <vector>
// Import namespace 'std'
using namespace std;

// 2. Initialize variables
const int MAX = 1000;
char s[MAX+1];
int a[MAX+1], b[MAX+1],c[MAX+2];


// 3. Define Main Function
int main(int argc, char **argv) {
    for (int i=0;i<1001;i++) {
        s[i]='0';
        a[i]=0, b[i]=0, c[i]=0;
    } // If you use global variables, this initialization does not need used.
	
    // 4. Input and process variables
    scanf("%s",s+1);
    int lena = strlen(s+1);

    for (int i=1;i<=lena+1;i++)
        a[i] = s[lena-i+1] - '0';

    scanf("%s",s+1);
    int lenb = strlen(s+1);
    for (int i=1;i<=lenb+1;i++)
        b[i] = s[lenb-i+1] - '0';

    int lenc = (lena>lenb)?lena:lenb;

    // 5. Calculate
    for (int i=1;i<=101;i++)
        c[i] = 0;
    for (int i=1;i<=lenc;i++) {
        // c[i] = a[i] + b[i]; <-- Wrong! 
        c[i] = a[i] + b[i] + c[i]; // <-- Correct
        // c[i] += a[i] + b[i]; <-- Plan B, Correct too
        // 處理進(jìn)位
        c[i+1] = c[i] / 10;
        c[i] = c[i] % 10;
    }
    // 處理 overflow
    if (c[lenc+1]>0)
        lenc++;

    // 6. Output
    for (int i=lenc;i>=1;i--)
    printf("%d", c[i]);
    return 0;
}

Control, 縮寫為Ctrl, 擴(kuò)寫為唱,跳,rap,籃球。
你還敢Ctrl+C嗎?文章來源地址http://www.zghlxwxcb.cn/news/detail-460267.html

到了這里,關(guān)于高精度加法(含代碼)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 高精度加法,減法,乘法,除法(下)(C語言)

    高精度加法,減法,乘法,除法(下)(C語言)

    前言 上一篇博客我們分享了高精度加法,減法,這一期我將為大家講解高精度乘法和高精度除法。那讓我們開始吧! 對加法和減法感興趣的話就點(diǎn)我 讓我們想想我們平時做數(shù)學(xué)時遇見乘法是怎么做的。以下圖為例。 高精度乘法也是這樣的一個思路,首先我們先把a(bǔ)和b的值儲存

    2024年02月04日
    瀏覽(94)
  • 高精度加法,減法,乘法,除法(上)(C語言)

    高精度加法,減法,乘法,除法(上)(C語言)

    前言 本篇內(nèi)容介紹加法和減法,如果想看乘法和除法就點(diǎn)這里-高精度乘法,除法 加,減,乘,除這些運(yùn)算我們自然信手捏來,就拿加法來說,我們要用c語言編程算a+b的和,只需讓sum = a+b即可,可是這是局限的,我們都知道int的表示的最大值為2147483647(32位和64位機(jī)器)。但

    2024年02月03日
    瀏覽(22)
  • 【每日撓頭算法題】Leetcode 989. 數(shù)組形式的整數(shù)加法 —— 高精度加法解法

    【每日撓頭算法題】Leetcode 989. 數(shù)組形式的整數(shù)加法 —— 高精度加法解法

    ??作者主頁:@進(jìn)擊的安度因 ??學(xué)習(xí)社區(qū):進(jìn)擊的安度因(個人社區(qū)) ??專欄鏈接:每日撓頭算法題 如果無聊的話,就來逛逛 我的博客棧 吧! ?? 今天為大家?guī)淼氖橇凵系囊坏篮唵晤}:數(shù)組形式的整數(shù)加法。這道題我在2個月前就嘗試過,但是沒有解答出來。兩個月后

    2024年01月25日
    瀏覽(23)
  • STM32 SYSTick高精度延時功能代碼實(shí)現(xiàn)

    STM32 SYSTick高精度延時功能代碼實(shí)現(xiàn)

    本篇文章將給大家講解一下SYSTICK滴答定時器,以及講解使用滴答定時器來實(shí)現(xiàn)高精度延時功能的代碼。 SysTick定時器是嵌入式系統(tǒng)中常見的一個系統(tǒng)定時器,在ARM Cortex-M微控制器中廣泛使用。下面是關(guān)于SysTick定時器的一些介紹: 用途: SysTick定時器通常被用作操作系統(tǒng)的時鐘

    2024年02月22日
    瀏覽(92)
  • 雙目相機(jī)標(biāo)定及高精度測量方法,含c++和python代碼說明

    視覺測量定位中,雙面相機(jī)高精度標(biāo)定是一個重要的步驟。下面是關(guān)于如何進(jìn)行雙面相機(jī)高精度標(biāo)定的說明和C++和Python代碼實(shí)現(xiàn)。 1. 雙面相機(jī)高精度標(biāo)定的原理 雙面相機(jī)高精度標(biāo)定的目的是確定相機(jī)內(nèi)部參數(shù)和外部參數(shù)。其中,內(nèi)部參數(shù)包括焦距、主點(diǎn)和畸變系數(shù)等,外部

    2023年04月08日
    瀏覽(22)
  • 免費(fèi)開源的高精度OCR文本提取,支持 100 多種語言、自動文本定位和腳本檢測,幾行代碼即可實(shí)現(xiàn)離線使用(附源碼)

    免費(fèi)開源的高精度OCR文本提取,支持 100 多種語言、自動文本定位和腳本檢測,幾行代碼即可實(shí)現(xiàn)離線使用(附源碼)

    免費(fèi)開源的高精度OCR文本提取,支持 100 多種語言、自動文本定位和腳本檢測,幾行代碼即可實(shí)現(xiàn)離線使用(附源碼)。 要從圖像、照片中提取文本嗎?是否剛剛拍了講義的照片并想將其轉(zhuǎn)換為文本?那么您將需要一個可以通過 OCR(光學(xué)字符識別)識別文本的應(yīng)用程序。 圖

    2024年02月01日
    瀏覽(101)
  • 高精度算法詳解

    高精度算法詳解

    首先要知道為什么需要高精度算法: 高精度算法是 處理大數(shù)字 的數(shù)學(xué)計(jì)算方法,當(dāng)數(shù)字過大不能用 int 和 long long 存儲時,我們就可以 使用string和vector類型 來存儲他們的每一位,然后進(jìn)行計(jì)算。 我們可以先把要輸入的兩個數(shù)字放到vector中存儲,注意要 反著存(后邊做加法

    2024年01月17日
    瀏覽(93)
  • 高精度乘法

    高精度加減法討論的是兩個大整數(shù)之間的運(yùn)算。 而這里高精度乘除法討論的是一個大整數(shù)和一個小整數(shù)之間的關(guān)系。 算法思路: 還是模擬小學(xué)的乘法列豎式,只不過此時不太一樣,原本的列豎式是一位一位的乘,這里需要改變一下思路。 這里直接把小整數(shù)當(dāng)成一個數(shù),所乘

    2024年02月08日
    瀏覽(90)
  • 高精度算法筆記·····························

    高精度算法筆記·····························

    加法 減法 乘法 除法 高精度加法的步驟: 1.高精度數(shù)字利用字符串讀入 2.把字符串 翻轉(zhuǎn) 存入兩個整型數(shù)組A、B 3.從低位到高位,逐位求和,進(jìn)位,存余 4.把數(shù)組C從高位到低位依次輸出 ????????1.2為準(zhǔn)備 ? ? ? ? 3為加法具體實(shí)現(xiàn)(0按位取反為-1,即-1時結(jié)束等價(jià)于=0) ?

    2024年01月21日
    瀏覽(92)
  • C++高精度算法

    目錄 前言:? 思路: 高精度加法: 高精度減法: 高精度乘法: 高精度除法: ?代碼: 一、高精度加法 二、高精度減法? 三、高精度乘法? 四、高精度除法 最后 ? ? ? ? 計(jì)算機(jī)最初、也是最重要的應(yīng)用就是數(shù)值運(yùn)算。在編程進(jìn)行數(shù)值運(yùn)算時,有時會遇到運(yùn)算的精度要求特

    2024年02月14日
    瀏覽(96)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包