真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

高精度加法【c++實現(xiàn)】-創(chuàng)新互聯(lián)

其他高精度算法如下:
高精度減法【c++實現(xiàn)】
高精度乘法【c++實現(xiàn)】
高精度除法【c++實現(xiàn)】
——————————————————————————————
說在前面:
眾所周知 int,long,long long 的能力是有限制的,具體見下表:
常見數(shù)據(jù)類型的取值范圍
然而現(xiàn)實中的數(shù)字是可以非常大的,大到 long long 都裝不下,這個時候如果對兩個這樣的數(shù)字進行加減乘除顯然是 long long 都無能為力了。欸!那該怎么辦呢?
這時候,就到了我們的高精度算法發(fā)光發(fā)熱的時候啦!

公司主營業(yè)務:網(wǎng)站設計制作、成都網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出青浦免費做網(wǎng)站回饋大家。

這里先說高精度加法的實現(xiàn):
首先要明確的一點是,高精度加法就是在模擬現(xiàn)實中加法計算的方法而已,用數(shù)組的一位存儲數(shù)字的一位,把兩個數(shù)字一位一位的相加,當兩位數(shù)相加再加進位的數(shù)字大于等于10的時候就要進位,同時當前位只保留個位數(shù),保證每一位只有一個數(shù)字。(可以自己列個豎式感受一下easy

需要解決的一些問題:
例如:976+515=1491
976+515=1491

如果像這個樣子存兩個數(shù)子的話就會發(fā)現(xiàn)一個問題,因為我們要保證數(shù)組的每一位只有一個數(shù)字,那ans的進位沒有地方放了啊(總不能不要了吧)
再例如:976+5151=6127
976+5151=6127
這種情況下,因為 num1 和 num2 沒有對齊位,所以相加的時候也不好處理 num1 的哪一位加 num2 的哪一位。

解決方法:
976+5151=6127
976+5151=6127
于是乎,我們就要把 num1 和 num2 倒著存進數(shù)組里,這樣就順利的解決了對齊問題和進位問題??!【鼓掌】【鼓掌】【鼓掌】

那么現(xiàn)在進入正題:
思路:

  1. 用字符數(shù)組接受兩個數(shù)字(這樣子數(shù)字就變成了一位一位的了)
  2. 將字符數(shù)組倒序轉為整形數(shù)組進行運算(字符相加可不太好做)
  3. 將結果倒序輸出就是答案啦
#include#includeusing namespace std;

int main(){int num1[520]={0},num2[520]={0},ans[520]={0};//自己根據(jù)需要定義整形數(shù)組的大小 
	int temp,i,j;						//temp是用來存進位的數(shù)字的 
	char num1c[520]={0},num2c[520]={0};//接受數(shù)字時用的字符數(shù)組 
	
	cin>>num1c>>num2c;		//接收兩個數(shù)字到字符數(shù)組(這是還是正向的) 
	
	int len1=strlen(num1c);	//計算num1的長度 
	int len2=strlen(num2c);	//計算num2的長度
	
	//將兩個字符型的數(shù)字 倒序存到對應整型數(shù)組里 (記得減字符‘0’) 
	//數(shù)字低位---------------->數(shù)字高位 
	for(i=len1-1;i>=0;i--){num1[len1-1-i]=num1c[i]-'0';
	}
	for(i=len2-1;i>=0;i--){num2[len2-1-i]=num2c[i]-'0';
	}
	
	//計算兩個數(shù)字的和 
	//循環(huán)的時候可以全部過一遍,也可以根據(jù)兩個數(shù)字的位數(shù)和進位來決定(循環(huán)次數(shù)會少一些)
	//但我們要充分相信計算機的能力(bushi) 
	for(i=0;i<=520;i++){ans[i]=num2[i]+num1[i]+temp;//求和 
		temp=ans[i]/10;//ans[i]如果大于10就進位 
		ans[i]%=10;//ans[i]取個位數(shù) 
	}
	
	len2++;//最高位加 1 防止漏掉最后的進位 
	
	//當數(shù)字總位數(shù)大于1時,去掉開頭的0
	//不要全都去掉哦,不然0+0就沒有輸出了 
	while(ans[len2]==0&&len2>0) len2--; 
	
	//倒序打印出來就是答案了?。。?! 
	for(i=len2;i>=0;i--){cout<

在這里插入圖片描述
結果發(fā)現(xiàn)非常成功?。?!【撒花】【撒花】【撒花】

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


網(wǎng)站名稱:高精度加法【c++實現(xiàn)】-創(chuàng)新互聯(lián)
標題路徑:http://weahome.cn/article/dijsii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部