日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python高精度加法_14.高精度加法

發(fā)布時間:2025/3/19 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python高精度加法_14.高精度加法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

作者:X3B0A1

1.0 問題

在我們熟悉的數(shù)據(jù)類型中,能夠儲存的最大的數(shù)也只是longlong的范圍。

雖然有些編譯器也提供__int128類型,但是最多也只能表示40位左右的數(shù),大小依然有限,而且適用范圍也很受限。

那么,又沒有辦法來模擬非常長的整數(shù)呢?

~~所以用python他不香么,自帶高精度還有各種庫~~

~~手動 @€€£ (doge~~

1.1 思路

既然變量不能儲存大數(shù),我們可以嘗試使用數(shù)組來儲存一個數(shù)。

用數(shù)組的每一位來儲存那個數(shù)字上的一位,也就是說,用一個長度為n的數(shù)組記錄一個n位數(shù)字。

那么,問題又來了,我們?nèi)绾芜M行加法運算呢

首先,回顧一下小學(xué)學(xué)習(xí)的豎式計算:

1 9 1

+ 9 8 1

--------

1 1 7 2

可以看到,用豎式計算時,為了保證進位正確,是從低位向高位運算的

我們可以模擬這個運算方法:

首先為了方便讀入,使用string直接讀入大數(shù)

將string類型的數(shù)轉(zhuǎn)換為數(shù)字,并為了進位方便,倒敘存儲在數(shù)組內(nèi)

len1 = str1.length();

len2 = str2.length();

//從 len - 1 開始到0遍歷數(shù)組,減去1是因為數(shù)組下標從0開始,方便操作for(int i = len1 - 1; i >= 0; i--){

//轉(zhuǎn)換為數(shù)字 num1[len1 - i] = str1[i] - '0';

}

for(int i = len2 - 1; i >= 0; i--){

num2[len2 - i] = str2[i] - '0';

}

遍歷數(shù)組,對于每一組數(shù),先兩個數(shù)加起來:

sum[i] += num1[i] + num2[i];

然后把兩數(shù)的和對10取整,即進位。

例如,兩數(shù)的和為9,對10取整為0,即進位為0; 兩數(shù)的和為19,對10取整為1,即進1位。

sum[i + 1] = sum[i] / 10;

處理完進位后,把兩數(shù)的和對10取余,留下個位。

例如,和為9,對10取余,留下個位為9;和為19,對10取余,留下個位為9。

sum[i] %= 10;

最后將數(shù)組倒敘輸出即可。

1.2 完整代碼

根據(jù)上面的描述,可以得到如下代碼:

#include#include#include

using namespace std;

const int MAXn = 2333;

int num1[MAXn], num2[MAXn], sum[MAXn];

int len1, len2;

int main(){

//讀入 string str1, str2;

cin >> str1 >> str2;

//轉(zhuǎn)換 len1 = str1.length();

len2 = str2.length();

//從 len - 1 開始到0遍歷數(shù)組,減去1是因為數(shù)組下標從0開始,方便操作 for(int i = len1 - 1; i >= 0; i--){

//倒敘存儲 把字符轉(zhuǎn)換為數(shù)字 num1[len1 - i] = str1[i] - '0';

}

for(int i = len2 - 1; i >= 0; i--){

num2[len2 - i] = str2[i] - '0';

}

//進行加運算 int len = max(len1, len2);

for(int i = 0; i <= len; i++){

//此處使用“+=” 是因為可能有進位 sum[i] += num1[i] + num2[i];

//處理進位 直接把進的為賦值給sum[i - 1] sum[i + 1] = sum[i] / 10;

//保留個位 sum[i] %= 10;

}

//輸出 //進位有可能導(dǎo)致位數(shù)增加1 if(sum[len + 1]){

len++;

}

//倒敘輸出 for(int i = len; i >0; i--){

cout << sum[i];

}

return 0;

}

1.3 時間復(fù)雜度分析

該算法次數(shù)最多的循環(huán)為最大數(shù)的數(shù)位次,時間復(fù)雜度即為

總結(jié)

以上是生活随笔為你收集整理的python高精度加法_14.高精度加法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美a天堂 | 久久综合影视 | 国产精品18久久久久久vr下载 | 制服丝袜先锋 | 日韩 欧美 亚洲 国产 | 中文字幕成人网 | 午夜精品免费观看 | 精品视频在线一区二区 | 欧美高清 | 国产三级在线看 | av免费在线播放 | av福利在线免费观看 | 男人的天堂久久 | 人妻一区二区三区四区五区 | 成人爽a毛片一区二区 | 成人在线观看亚洲 | 玖玖网 | 极品少妇在线 | missav | 免费高清av在线看 | 天堂网av在线 | 色香影视 | 国产无玛| 日韩 欧美| 亚洲乱码中文字幕 | 中文字幕高清在线免费播放 | 国产麻豆精品久久一二三 | 成人aaaa| av资源共享 | 国产综合久久久 | 伊人久久97 | 亚洲一区图片 | 色狠狠一区二区三区香蕉 | 中文字幕在线2019 | 黄色网址哪里有 | 免费在线黄色网址 | 99精品一区二区三区无码吞精 | 亚洲无毛 | 精品人妻一区二区三区久久夜夜嗨 | 毛片无遮挡 | 免费黄色片网站 | 麻豆成人av| 玖玖成人 | 国产精品污www在线观看 | 韩国19主播内部福利vip | 人人做 | 欧美播放 | 欧美精品aaa | 老司机精品视频在线播放 | 视频一区二区三区精品 | 国产91在线亚洲 | 亚洲男女网站 | 蘑菇av | 成人av福利| 国产剧情演绎av | 3d动漫精品啪啪一区二区竹菊 | 国产毛片毛片毛片毛片毛片 | 男女裸体无遮挡做爰 | 伊人三区 | 色综合久久久久久久 | 日日摸日日碰夜夜爽无码 | 黄页网站在线 | 日韩精品一区在线播放 | 色桃网 | 国产另类ts人妖一区二区 | 日本女优网址 | 亚洲a网站| 日本熟妇一区二区三区四区 | 狠狠一区二区 | 黄色一级片a | 国产一区二区三区四区五区美女 | 在线观看99 | 毛片2 | av激情影院 | 日本一本在线视频 | 久久精品视频18 | 性欧美video另类hd尤物 | 久久国产精品久久久 | 亚洲不卡在线观看 | 免费成人深夜夜国外 | 国产成人专区 | av色片| 欧美日韩影院 | 欧美成人精品在线观看 | 亚洲视频一区二区 | 成人国产片女人爽到高潮 | 亚洲精品免费播放 | 欧美一级特黄aaaaaa大片在线观看 | 美女视频一区二区 | 黄色午夜视频 | 欧洲美一区二区三区亚洲 | 四虎成人精品在永久免费 | 免费古装一级淫片潘金莲 | 色七七桃花综合影院 | www四虎精品视频免费网站 | 日韩在线视| 波多野在线 | 中文字幕精 | 在线欧美国产 | 好男人www社区在线视频夜恋 |