x的二分之一次方怎麼求?二分!
首先求整數部分,從1到x二分答案,選擇最接近的那個
然後是求第一位小數部分,用高精度乘法模擬平方,看看得出的數是否比x大,或者比x小,從0到9不斷二分即可
然後是第二位小數......
view code
1 #include2 #include3 #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...