高精度開方

2022-04-11 17:22:40 字數 1476 閱讀 1756

x的二分之一次方怎麼求?二分!

首先求整數部分,從1到x二分答案,選擇最接近的那個

然後是求第一位小數部分,用高精度乘法模擬平方,看看得出的數是否比x大,或者比x小,從0到9不斷二分即可

然後是第二位小數......

view code

1 #include2 #include

3 #include4

using

namespace

std;56

intn,nlen;

7char str[22];8

int c[1000];9

int a[1000],b[1000],d[1000

];10

11int isok(int

len)

1221

for(i=0;i)

2227

}28 len=2*len-1;29

for(i=0;i)

3034

while

(b[len])

3540

if(len-t//

整數字數小於給定的n的長度,則返回小於

41return -1;42

if(len-t>nlen) //

返回大於

43return1;

44for(i=len-1,j=nlen-1;i>=0 && j>=0;i--,j--)

4551

while(i>=0)52

57return

0; //

等於58}59

60int

main()

6178 l=1;r=n;

79int flag=0; //

標記是否相等

80while(l<=r) //

求整數部分

8189

else

if(tt<0)90

95else

if(tt==0

) 96

101}

102 c[0]=t;

103for(i=1;i<120;i++) //

模擬開方的前119位小數

104117

else

if(tt<0

)118

123else

if(tt==0

)124

129}

130 c[i]=t;

131}

132 printf("

%d.",c[0

]);133

for(i=1;i<120;i++)

134 printf("%d"

,c[i]);

135 printf("\n"

);136

}137

return0;

138 }

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

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