今晚看到乙個朋友發了乙個面試題,題目是這樣:
編寫乙個程式,計算整形數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 輸出...