20191031 專題 高精度

2021-09-29 05:32:53 字數 3248 閱讀 6499

#include

using

namespace std;

const

int a=

300;

int n,m;

char a[a]

,b[a]

;int s1[a]

,s2[a]

;int r[a]

;signed

main()

if(jw) r[

++n]

=jw;

while

(n>1&&

!r[n]

) n--

;for

(int i=n;i>

0;i--

)printf

("%d"

,r[i]);

return0;

}

#include

using

namespace std;

const

int a=

500;

int n,m;

string x,y;

int a[a]

,b[a]

;int r[a]

;signed

main()

if(n==m)

if(xfor(

int i=

1;i<=n;i++

) a[i]

=x[n-i]

-'0'

;for

(int i=

1;i<=m;i++

) b[i]

=y[m-i]

-'0'

;int c=0;

for(

int i=

1;i<=n;i++

)else

}while

(!r[n]

&&n>

1) n--

;for

(int i=n;i>

0;i--

)printf

("%d"

,r[i]);

return0;

}

#include

using

namespace std;

const

int a=

1e3;

string x,y;

int n,m;

int a[a]

,b[a]

;int r[a]

;signed

main()

if(jw) r[i+m]

=jw;

}int w=n+m;

while

(!r[w]

&&w>

1) w--

;for

(int i=w;i>

0;i--

)printf

("%d"

,r[i]);

return0;

}

#include

using

namespace std;

const

int a=

500;

string x;

int n;

int a[a]

;int r[a]

;int c;

signed

main()

int tot=1;

while

(tot!r[tot]

) tot++

;for

(int i=tot;i<=n;i++

)printf

("%d"

,r[i]);

printf

("\n");

printf

("%d"

,jw)

;return0;

}

(模擬即可)

採用計算機做高精度除法時,模擬日常除法的步驟。但計算機不可能做「試商」,這時,我們可以採用減法來模擬。

"試商"的演算法的步驟如下:

1、將除數移動和被除數對齊,位數不夠時,補0,

2、利用被除數減去除數,一直減到被除數小於除數,減的次數,就是「試商」的結果,每移動一次。

3、重複上述步驟,一直到被除數和除數的位數相等為止。

**:

#include

using

namespace std;

const

int a=

500;

string x,y;

int n,m;

int a[a]

,b[a]

;int q[a]

,r[a]

,cs=

0/*減的次數*/

,wq=

0/*q的位數*/

;int res[a]

;bool

compare()

return

true;}

intsc

(int wz)

while

(compare()

)if(q[i]

+jw)

} cs++

;int sw=0;

//剩餘位數

for(

int i=

1;i<=wq;i++

) wq=sw;

}for

(int i=wz;i>

0;i--

) a[i]

=q[wz-i+1]

;}signed

main()

for(

int i=m;i<=n;i++

)int tot1=0;

while

(!res[tot1]

&&tot1;//去商的前導零

int tot2=0;

while

(!a[tot2]

&&tot2;//去餘數的前導零

for(

int i=tot1;i<=n;i++

)printf

("%d"

,res[i]);

printf

("\n");

for(

int i=tot2;i<=n;i++

)printf

("%d"

,a[i]);

return0;

}

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

先貼乙個簡單的高精度除以單精度的 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...