大數的加減乘除

2021-04-19 03:16:16 字數 1264 閱讀 7955

當數的位數非常大而常規的資料型別不足以儲存的時候,可以考慮使用大數。即用乙個長的陣列來儲存相應的位數,如int a[100],a的每一位儲存一位數字或幾位數字,根據常規的加減乘除運算對陣列進行操作。使用string型別對陣列進行操作,雖然比用整型簡便,但可 能增加了執行時間。pku1001:exponentiation 就用到了大數的乘法

如下是乙個使用string型別進行大數加減乘除的例子:

#include

#include

#include

#include

using namespace std;

bool comp(string num1,string num2)

else return false;

}string _plus(string num1,string num2)

result=result.substr(0,i+1);

reverse(result.begin(),result.end());

if(result.length()==0)result="0";

return result;

}string _minus(string num1,string num2)

reverse(num1.begin(),num1.end());

reverse(num2.begin(),num2.end());

string result="";

int i;

for(i=0;i=0;i--)

result=result.substr(0,i+1);

reverse(result.begin(),result.end());

if(result.length()==0)result="0";

return result;

}string _mult(string num1,string num2)

if(result=="")result="0";

return result;

}string _divid(string num1,string num2)

string result="",r1;

int i,j,k;

int length1=num1.length(),length2=num2.length(),pos;

r1=num1.substr(0,length2);

pos=length2-1;

while(pos>num1>>num2)

return 0;

}

大數加減乘除

include include include include includeusing namespace std compare比較函式 相等返回0,大於返回1,小於返回 1 int compare string str1,string str2 if cf 0 str char cf 0 st...

大數加減乘除

對於大數的加減乘除都要先把輸入的大數字串轉成倒序的陣列,再進行運算。字串的處理 scanf s s a1,b1 len 0 for int i strlen a1 1 i 0 i len 0 for int i strlen b1 1 i 0 i len max strlen a1 strlen b...

大數的加減乘除

最基本的乙個運算,可以用陣列或指標做 一.加法 1.自己的 真是一點都不簡潔,水平有限啊!include include int max int len1,int len2 int main for int i 0 i len1 len2 i s2 i 0 if len1 len2 for int ...