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

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

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

前言
上一篇博客我們分享了高精度加法,減法,這一期我將為大家講解高精度乘法和高精度除法。那讓我們開始吧!
對(duì)加法和減法感興趣的話就點(diǎn)我

高精度加法,減法,乘法,除法(下)(C語(yǔ)言),c語(yǔ)言學(xué)習(xí),c語(yǔ)言,開發(fā)語(yǔ)言

1,乘法

讓我們想想我們平時(shí)做數(shù)學(xué)時(shí)遇見乘法是怎么做的。以下圖為例。
高精度加法,減法,乘法,除法(下)(C語(yǔ)言),c語(yǔ)言學(xué)習(xí),c語(yǔ)言,開發(fā)語(yǔ)言
高精度乘法也是這樣的一個(gè)思路,首先我們先把a(bǔ)和b的值儲(chǔ)存進(jìn)兩個(gè)數(shù)組之中。然后將兩個(gè)數(shù)組翻轉(zhuǎn)之后,讓a乘以b的每一位(從個(gè)位開始),然后錯(cuò)位相加。最后即可得到結(jié)果。
下面我用代碼的方式來(lái)講解:

#include <stdio.h>
#include<string.h>
void my_reverse(char* arr, int len)//翻轉(zhuǎn)函數(shù)
{
    for (int i = 0; i < len - 1; i++, len--)
    {
        char temp = arr[i];
        arr[i] = arr[len - 1];
        arr[len - 1] = temp;
    }
}
void print_mul(int len1, int len2, char* arr1, char* arr2,int* mul)
{
    for (int i = 0; i < len2; i++)
    {
        for (int j = 0; j < len1; j++)//讓arr1的每一位都乘以arr2的第i位
        {//高精度加法
            mul[i + j] += (arr1[j]-'0') * (arr2[i]-'0');//將結(jié)果存放在mul中
            mul[i + j + 1] += mul[i + j] / 10;
            mul[i + j] %= 10;
        }
    }
    while (mul[len1 + len2] == 0&&len1+len2 > 0)//去除前綴多余的0
        len1--;
    for (int i = len1 + len2; i >= 0; i--)//打印結(jié)果
        printf("%d", mul[i]);
}
int main()
{
    char arra[10100] = { 0 }, arrb[10100] = { 0 }; int arrmul[10010] = { 0 };//分別儲(chǔ)存a,b的值和a*b的值
    scanf("%s %s", arra, arrb);
    int lena = strlen(arra);//計(jì)算a和b的長(zhǎng)度
    int lenb = strlen(arrb);
    my_reverse(arra, lena);//將a和b進(jìn)行翻轉(zhuǎn)方便進(jìn)行運(yùn)算
    my_reverse(arrb, lenb);
    print_mul(lena, lenb, arra, arrb, arrmul);
    return 0;
}

我們學(xué)習(xí)之后可以去洛谷進(jìn)行測(cè)試(洛谷 P1303 A*B Problem)

2,除法

除法在這里,點(diǎn)我點(diǎn)我!

3,尾聲

這樣我們的高精度算法就結(jié)束了,博主還將繼續(xù)更新其他算法和編程學(xué)習(xí)的講解。如果覺得感興趣要記得關(guān)注下博主哦~。如果覺得本篇內(nèi)容講得不錯(cuò)的話請(qǐng)給博主一個(gè)贊和收藏吧。那么我們下期再見!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-756297.html

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

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

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

相關(guān)文章

  • 高精度減法

    要實(shí)現(xiàn)兩個(gè)高精度數(shù)的減法,和高精度加法一樣都是模擬豎式計(jì)算的過程,主要就是解決以下兩個(gè)問題。 誰(shuí)大誰(shuí)??? 由于這兩個(gè)數(shù)字都很大,但是不知道誰(shuí)更大,所以要先判斷哪個(gè)數(shù)更大,思路如下: 判斷這兩個(gè)數(shù)誰(shuí)的位數(shù)更大,位數(shù)更大的自然更大。 如果位數(shù)不相同,從

    2024年02月08日
    瀏覽(98)
  • C++實(shí)現(xiàn)高精度減法

    一、問題描述: ? ? ? ?高精度算法是處理大數(shù)字的數(shù)學(xué)計(jì)算方法。在一般的科學(xué)計(jì)算中,會(huì)經(jīng)常算到小數(shù)點(diǎn)后幾百位或者更多,當(dāng)然也可能是幾千億幾百億的大數(shù)字。一般這類數(shù)字我們統(tǒng)稱為高精度數(shù),高精度算法是用計(jì)算機(jī)對(duì)于超大數(shù)據(jù)的一種模擬加,減,乘,除,乘方

    2024年02月14日
    瀏覽(28)
  • 高精度除法

    高精度除法和乘法討論的一樣,都是一個(gè)大整數(shù)和一個(gè)小整數(shù)之間的運(yùn)算。 算法思路 根據(jù)小學(xué)除法一樣,我們還是模擬這個(gè)過程。 注意這里遍歷 (A) 數(shù)組的時(shí)候要按照我們讀數(shù)字的順序,也就是從數(shù)組尾部到頭部遍歷。 每一位的計(jì)算過程應(yīng)該是,上一輪的余數(shù) (r) 乘 (

    2024年02月08日
    瀏覽(373)
  • 高精度的乘除法

    793. 高精度乘法 給定兩個(gè)非負(fù)整數(shù)(不含前導(dǎo) 0) A 和 B,請(qǐng)你計(jì)算 A×B 的值。 輸入格式 共兩行,第一行包含整數(shù) A,第二行包含整數(shù) B。 輸出格式 共一行,包含 A×B 的值。 數(shù)據(jù)范圍 1≤A的長(zhǎng)度≤100000, 0≤B≤10000 輸入樣例: 輸出樣例: 代碼: 794. 高精度除法 給定兩個(gè)非負(fù)

    2023年04月20日
    瀏覽(93)
  • SQL 算術(shù)運(yùn)算符:加法、減法、乘法、除法和取模的用法

    SQL 算術(shù)運(yùn)算符:加法、減法、乘法、除法和取模的用法

    存儲(chǔ)過程是一段預(yù)先編寫好的 SQL 代碼,可以保存在數(shù)據(jù)庫(kù)中以供反復(fù)使用。它允許將一系列 SQL 語(yǔ)句組合成一個(gè)邏輯單元,并為其分配一個(gè)名稱,以便在需要時(shí)調(diào)用執(zhí)行。存儲(chǔ)過程可以接受參數(shù),使其更加靈活和通用。 創(chuàng)建存儲(chǔ)過程的語(yǔ)法如下: 執(zhí)行存儲(chǔ)過程的語(yǔ)法如下:

    2024年02月05日
    瀏覽(31)
  • C++基礎(chǔ)算法①——高精度加減法計(jì)算

    C++基礎(chǔ)算法①——高精度加減法計(jì)算

    當(dāng)我們利用計(jì)算機(jī)進(jìn)行數(shù)值計(jì)算,有時(shí)候會(huì)遇到這樣的問題: n!的精確結(jié)果是多少? 當(dāng)n小于30的時(shí)候,我們當(dāng)然可以通過電腦自帶的計(jì)算器計(jì)算出來(lái)。但是當(dāng)我們遇到 100! 的時(shí)候就沒有辦法直接計(jì)算出精確的結(jié)果。再比如,求兩個(gè)20000位的數(shù)的和。 那怎么解決精度缺失的問

    2024年02月16日
    瀏覽(21)
  • 高精度除法【c++實(shí)現(xiàn)】超詳細(xì)講解

    高精度算法分為兩種,高精除以低精和高精除以高精。不要看都是除法,就認(rèn)為原理類似,其實(shí)是有很大差距的。讓我們一起來(lái)學(xué)習(xí)吧! 有句話說(shuō)在前面,如果除數(shù)等于0,就不要算了,不成立。( 如果你忘了這個(gè)知識(shí),小學(xué)數(shù)學(xué)老師饒不了你 ) 高精度除低精度,原理是模

    2024年02月13日
    瀏覽(92)
  • 高精度加法(含代碼)

    例如: 1111111111111+9, 列成 豎式 , 先算個(gè)位, 1 + 9 = 10 , 滿 10 , 向十位進(jìn) 1 。 接下來(lái), 處理 進(jìn)位 。 十位: 1+1=2 - 2 百位: 無(wú)進(jìn)位, 直接照抄. 1 - 1 千位: 1 - 1 萬(wàn)位: ... ...: ... 最高位: 1 - 1 最終結(jié)果: 所以, 1111111111111+ 9 = 1111111111120 1111111111111+8888888888889, 這個(gè)算式變成了 高精度 + 高精度

    2024年02月06日
    瀏覽(27)
  • 高精度加法

    高精度問題是指兩個(gè)數(shù)字非常大,超過了 int ,甚至 long long 的范圍,數(shù)字的位數(shù)甚至能達(dá)到 (10^5) ,那么如果要實(shí)現(xiàn)這樣兩個(gè)大數(shù)字的運(yùn)算,需要解決以下兩個(gè)問題: 如何存儲(chǔ)? 這樣的兩個(gè)數(shù)字相加是不可能用普通類型來(lái)存儲(chǔ)的,所以我們第一個(gè)要解決的問題就是如何存儲(chǔ)

    2024年02月08日
    瀏覽(98)
  • HJ57 高精度整數(shù)加法

    HJ57 高精度整數(shù)加法 1.逐位相加 按照傳統(tǒng)加減法模式,從最后一位開始,逐位相加,逢十進(jìn)一,傳統(tǒng)方式從右往左相加,可以將數(shù)字翻轉(zhuǎn),變成從左往右按照數(shù)組遍歷順序相加,最后再將結(jié)果翻轉(zhuǎn)。 時(shí)間復(fù)雜度:O(n+m) 2.利用大整形類型BigInteger實(shí)現(xiàn)

    2024年02月09日
    瀏覽(27)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包