kuangbin高精度實現

2021-07-17 05:52:58 字數 1069 閱讀 8169

#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;

}

高精度除法(高精度除以高精度)

先貼乙個簡單的高精度除以單精度的 include include include using namespace std int main else ys ys 10 a i 0 while c i 0 i for int j i j 0 j printf d c j if ys printf d ...

高精度除高精度

演算法流程 第一步,讀入被除數 a 和 除數 b,判斷是否 a b,是則輸出 0 並結束演算法,否則令 answer 0 第二步,令餘數 remainder 0,令 i 從被除數最高位的下標開始 第三步,令 remainder remainder 10 a i 令 c 9 第四步,判斷是否 b c ...

高精度除以高精度

原 題 高精除以高精,求它們的商和餘數。演算法分析 高精除以高精是用減法模擬除法,對被除數的每一位都減去除數,一直減到當前位置的數字 包括前面的餘數 小於除數 由於每一位的數字小於10,所以對於每一位最多進行10次計算 代 碼 include include include using namesp...