小數點後k位

2021-09-16 21:50:55 字數 902 閱讀 5916

立華奏在學習初中數學的時候遇到了這樣一道大水題:

「設箱子內有 n 個球,其中給 m 個球打上標記,設一次摸球摸到每乙個球的概率均等,求一次摸球摸到打標記的球的概率」

但是她改了一下詢問方式:設最終的答案為 p ,請輸出 p 小數點後 k1 到 k2 位的所有數字(若不足則用 0 補齊)

第一行乙個整數 t,表示有 t 組資料。

接下來每行包含四個整數 m,n,k1,k2意義如「題目描述」所示。

輸出 t 行,每行輸出 k2−k1+1個數,表示答案。

注意同行的數字中間不需要用空格隔開。

示例1

5

2 3 2 3

1 7 1 7

2 5 1 3

12345 54321 3 10

12345 54321 100000 100010

66

1428571

40072601756

78428232175

1≤m≤n≤1e9, 1≤k1≤k2≤1e9

0≤k2−k1≤1e5,t≤20

本來想的是算小數的迴圈節,可能某個資料迴圈節比較大吧,過不了。

正解是先用快速冪跳過小數點後的前k1-1位,n*pow(10,k1-1) mod 就可以了,然後再模擬k2-k1+1次除法。

#include#include#includeusing namespace std;

typedef long long ll;

const int maxn=1e6+5;

ll ksm(ll a,ll b,ll mod)

return ans;

}int main()

cout<}

return 0;

}

小數點後截位問題

在許多應用程式領域中,都需要控制小數點後的小數字,但是浮點數對此不能提供直接的支援。怎樣對程式中的浮點資料進行 整齊 地格式化呢?在此我們有乙個迂迴的方法,先把它們轉換為字串,格式化後以文字形式顯示出來。在日常程式設計中 包括對話方塊 關聯式資料庫 金融程式 sms程式及一切處理資料檔案的程式,需要...

限制小數點 16 19小數點後200位是多少?

c語言求解精確小數點 題目內容 由於計算機內部表達方式的限制,浮點運算都有精度問題,為了得到高精度的計算結果,就需要自己設計實現方法。0,1 之間的任何浮點數都可以表達為兩個正整數的商,為了表達這樣兩個數的商,可以將相除的結果存放在一維陣列中,陣列的每個元素存放一位十進位制數字。即商的第一位存放在第...

計算pi小數點後10000位

部落格已搬家到 資料結構課上,老師讓我們計算一下pi的10000位,複習一下物件導向。first try 定義乙個高精度類hp high precision 實現加減乘除,輸入輸出,然後隨便找乙個公式,比如wallis公式,全都用hp進行計算。現實是 大數乘大數或者大數除大數,實在是太慢了。而且wa...