/********************************************
演算法思想:
反覆做減法,看看從被除數裡最多能減去多少個除數,商就是多少;
所以演算法核心是寫乙個大整數的減法函式;
反覆呼叫該函式進行減法操作;
演算法步驟:
用陣列a表示被除數,陣列b表示除數,陣列res表示商;
先用被除數a減去除數b得到差的位數k,同時商+1;
再用被除數a減去若干個除數b*(10^k);
不夠減了,再減去若干個除數b*(10^(k-1))...b*(10^(k-2))...;
一直減到不夠減為止;
每成功減一次,則商的相應位+1;
最後再迴圈處理商的進製問題;
********************************************/
#include#include#include#include#include#includeusing namespace std;
const int n=1000;
int a[n],b[n],res[n*2];
char x[n],y[n];
int len1,len2;
void init()
for(int i=len2-1,j=0; i>=0; i--)
}int substraction(int *p1,int *p2,int len1,int len2)//計算長度為len1的大整數減去長度為len2的大整數的結果的長度
return 0;
}void output()
}bool flag=0;
for(int i=n-1; i>=0; i--)//輸出
else if(res[i])
}if(!flag)
printf("0");
printf("\n");
}void solve()
}len2=len1;
for(int j=0; j<=k; j++)//先減去若干個b*(10^k),不夠減了再減去若干個b*(10^(k-1))...
}output();
}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 ...
高精度除法
codevs 1331 西行寺幽幽子 codevs 3118 高精度練習之除法 學了高精度這麼久到現在才開始搞除法txt,總的來說高精除是四則運算 裡最難的。但是,高精度都是可以利用我們平時做算術時的方法手動模擬的,接下來我 們來學一下高精除。思路 首先,除法是建立在減法的基礎上的,我們可以考慮每次...
高精度除法
思路 求迴圈節需要模擬迴圈小數的求解過程。那麼什麼時候會出現迴圈呢?在除的過程中,除數b是不變的,而被除數a一直在變化,那麼當a變換為之前出現過的某個值時,就出現了迴圈。include include include include using namespace std const int n 3...