要求兩數相除,結果精確到1000位的一種簡單做法。

2021-06-07 00:34:21 字數 721 閱讀 4738

今晚看到乙個朋友發了乙個面試題,題目是這樣:

編寫乙個程式,計算整形數a除以整形數b的結果,精確到小數點1000位。(c#或c++實現)

執行類似下圖:

一開始,我想到的是浮點運算,但是做來做去,還是沒有結果。於是用筆在紙上計算了這個過程,我發現,每次我們用被除數來除除數時,其實都是將 被除數擴大10倍再去除以除數,那麼在程式中,我們是不是也可以將被除數擴大10除以除數得到第乙個小數字,然後再將餘數當做下次運算的除數再擴大10倍,再去除以除數,其實就是用整型運算來完成成個過程。是的,經過除錯發現,的確是這樣。思路大概是這樣,話不多說,我想這比朋友給我說的網上找大數演算法更靈活一些,不管要精確到幾位,只要你的計算機記憶體夠大,100億位也行。下面給出程式:

#include using namespace std ;

int _tmain(int argc, _tchar* argv)

while( checknumber );

ifneednode = 0 ;

}if( ifneednode)

strcat(value,"0.") ;

else

strcat(value,".") ;

while( ibit-- )

cout<

求兩整數相除 29 兩數相除

給定兩個整數,被除數 dividend 和除數 divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數 dividend 除以除數 divisor 得到的商。示例1 輸入 dividend 10,divisor 3 輸出 3 示例2 輸入 dividend 7,divisor...

LeetCode 兩數相除

題目 給定兩個整數,被除數dividend和除數divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數dividend除以除數divisor得到的商。示例 1 輸入 dividend 10,divisor 3輸出 3示例 2 輸入 dividend 7,divisor 3輸出...

兩數相除 kotlin

給定兩個整數,被除數dividend和除數divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數dividend除以除數divisor得到的商。示例 1 輸入 dividend 10,divisor 3 輸出 3 示例 2 輸入 dividend 7,divisor 3 輸出...