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