高精度演算法

2021-08-04 17:06:45 字數 1069 閱讀 4610

#include#include#include#includeusing namespace std;

//compare比較函式:相等返回0,大於返回1,小於返回-1

int compare(string str1,string str2)

if(cf!=0) str=char(cf+'0')+str;

return str;

}//高精度減法

//只能是兩個正數相減,而且要大減小

string sub(string str1,string str2)//高精度減法

else

}str.erase(0,str.find_first_not_of('0'));//去除結果中多餘的前導0

return str;

}//高精度乘法

//只能是兩個正數相乘

string mul(string str1,string str2)

if(cf!=0) tempstr=char(cf+'0')+tempstr;

}str=add(str,tempstr);

}str.erase(0,str.find_first_not_of('0'));

return str;

}//高精度除法

//兩個正數相除,商為quotient,餘數為residue

//需要高精度減法和乘法

void div(string str1,string str2,string "ient,string &residue)

if(str1=="0")//判斷被除數是否為0

int res=compare(str1,str2);

if(res<0)

else if(res==0)

else}}

residue=tempstr;

}quotient.erase(0,quotient.find_first_not_of('0'));

if(quotient.empty()) quotient="0";

}int main()

return 0;

}

演算法 高精度乘法2(高精度乘高精度)

題目描述 高精度乘,求兩個很大的非負整數相乘的結果。輸入 2個非負整數,每個一行,每個整數不超過240位。輸出 乙個整數,表示相乘的結果。例子 為了和演算法對應方便,用上面數乘下面數的方法12 5 2512 5502 5312 5為了運算方便,將上面兩數倒置,得到的結果也為倒序下標0 1234 56...

高精度演算法 791 高精度加法

給定兩個正整數,計算它們的和。輸入格式 共兩行,每行包含乙個整數。輸出格式 共一行,包含所求的和。資料範圍 1 整數長度 100000 輸入樣例 1223 輸出樣例 35注意點 1.兩個整數較大,用字串來存,這樣的話,可以呼叫它的size 方法 2.將兩個大的整數,存入vector陣列中,最好把整數...

高精度演算法

任務 高精度,計算大數乘小數 引數 乘法函式mul引數為 被乘數a,儲存最終結果的ans陣列,乘數b 結果 ans陣列中ans 0 為最高位,以此類推 include include using namespace std void mul char a,char ans,int b 任務 高精度,...