立華奏在學習初中數學的時候遇到了這樣一道大水題:
「設箱子內有 n 個球,其中給 m 個球打上標記,設一次摸球摸到每乙個球的概率均等,求一次摸球摸到打標記的球的概率」
但是她改了一下詢問方式:設最終的答案為 p ,請輸出 p 小數點後 k1 到 k2 位的所有數字(若不足則用 0 補齊)
第一行乙個整數 t,表示有 t 組資料。接下來每行包含四個整數 m,n,k1,k2意義如「題目描述」所示。
輸出 t 行,每行輸出 k2−k1+1個數,表示答案。示例1注意同行的數字中間不需要用空格隔開。
52 3 2 3
1 7 1 7
2 5 1 3
12345 54321 3 10
12345 54321 100000 100010
661428571
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...