C 使用string的大數加法運算(1)

2022-10-03 23:45:13 字數 1232 閱讀 7814

專案要點

1.大數指的是遠超long long int的資料

2.將大數用矩陣進行儲存,並通過矩陣實現運算

3.本人採用字串進行儲存,應注意char的特點

比如:char a=161;

cout<

此時會輸出-95,而不是161,char型別首個位元位是作為正負號的

加法,此處只做自然數加法,因為存在負整數的話可以使用自然數減法來處理

執行截圖及**如下:

#include程式設計客棧;iostream>

#include

#include

using namespace std;

#define n 10

string dezero(string a)//用來去掉正數前面的0,也就是說可以輸入00程式設計客棧0001類似這樣的數字

if(i==a.length()) return "0";

a.erase(0,i);

return a;

}string add(string a,string b)//自然數加法

else

c.insert(c.length(),d);

for(i=0;i=48&&a.at(i)<=57) a.at(i)-=48;

if(a.at(i)>=97&&a.at(i)<=bcdoej122) a.at(i)-=87;

if(b.at(i)>=48&&b.at(i)<=57) b.at(i)-=48;

if(b.at(i)>=97&&b.at(i)<=122) b.at(i)-=87;

c.at(i)=a.at(i)+b.at(i);

} for(i=kmin;i=48&&c.at(i)<=57) c.at(i)-=48;

if(c.at(i)>=97&&c.at(i)<=122) c.at(i)-=87;

} for(i=0;i=n) }

if(c.at(kmax)==0)

for(i=0;i=10) c.at(i)+=87;

if(c.at(i)&程式設計客棧lt;10) c.at(i)+=48;

} reverse(c.begin(),c.end());

return c;

}int main()

{ string a,b;

while(cin>>a>>b)

{ cout<

本文標題: c++使用string的大數加法運算(1)

本文位址:

C 大數加法 string

int 2147483648 2147483647 10位數 unsigned int 0 4294967295 10位數 long long 9223372036854775808 9223372036854775807 19位數 unsigned long long 0 184467440737...

大數的加法 C

數字的加減乘除是在程式設計中必不可少的一部分,但是整數的加法存在一定的缺陷,一般情況下整數的加法完全可以滿足日常的使用,但是一旦超過一定的數值之後,就會出現數值的溢位,就不能完成得到正確的數值,所以大數的加法就具有一定的意義。大數的加法首先要考慮數字和資料溢位的問題,當兩個整數的加法的和超出當前整數...

c 大數加法

在c 中,我們經常需要表示整數。但是,c 的基本資料型別中,最大的long也只能表示 9,223,372,036,854,775,808 到 9,223,372,036,854,775,807之間的數。貨幣型別也不是無限大。如果我們需要表示更大的數,就需要用到一定的演算法來完成。這次,我和大家一起討...