大數相加 減 乘 除 取餘 模板

2021-08-11 16:20:24 字數 1190 閱讀 7373

string sum(string s1,string s2)//大數相加

int i,j;

for(i=s1.length()-1,j=s2.length()-1; i>=0; i--,j--)

}return s1;

}string sub(string s1,string s2)//大數相減

for(int i=len-1; i>=0; i--)

char temp=s1[i]-s2[i]+'0';

ans=temp+ans;

}int pos=0;

while(ans[pos]=='0' && posif(pos==len) return

"0";

if(ok) return

"-"+ans.substr(pos);

return ans.substr(pos);

}string mul(string s1,string s2)//大數相乘

}string ans;

i=0;

while(s[i]==0) // 跳過頭部0元素

i++;

for(j=0; i'0');

if(ans.size()==0) //這裡判斷一下結果為0的情況

ans="0";

return ans;

}bool compare(string first,string second)//大數比較

string div(string s1,string s2,char ch)//大數相除以及求餘

result+=char(count+'0'); //s>b時加每次相除得到的商或者,s}

i=0;

while('0'==result[i])

i++;

result.erase(0,i);

i=0;

while(s[i]=='0')

i++;

s.erase(0,i);

if(!s.size())//判斷餘數為0的情況

s="0";

if(!result.size())//判斷商為0的情況

result="0";

if(ch=='/')

return result;

else

return s;

}

大數模板(加 減 乘 除)

實現兩數的加減乘除,如果兩個數可以被存在變數裡,可以直接呼叫運算子,但是當兩個數不足以被變數容納時就會產生溢位等問題,這時可以用高精度演算法來解決。高精度演算法主要是借助陣列來儲存資料,比如乙個值有200位數,這時不可能直接儲存在乙個變數裡,但可以開乙個200長度的陣列,來記錄這個數的每一位數,就可...

大數加減乘除

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...