我們知道,整數做除法時,有時得到有限小數,有時得到無限迴圈小數。
如果我們把有限小數的末尾加上無限多個0,它們就有了統一的形式。
本題的任務是:在上面的約定下,求整數除法小數點後的第n位開始的3位數。
一行三個整數:a b n,用空格分開。a是被除數,b是除數,n是所求的小數後位置(0一行3位數字,表示:a除以b,小數後第n位開始的3位數字。
1 8 1
用yu表示a每除以一次b得到的餘數,
當相同的餘數第二次出現的時候,此時的餘數除以b是第二個迴圈節的第一位。
數值為yu的餘數出現在小數點後第mp[yu]位,
用cnt表示計算到了第幾位。
yu的終值是迴圈節的第一位,
cnt的終值是第乙個迴圈節的最後一位(見**)。
以1/8為例:
消除重複的迴圈節,縮小n的值:
區間 ( mp[yu] , n ] 共有n-mp[yu]個元素,
迴圈節長度為 cnt-mp[yu]+1,
當n>mp[yu]時,n=mp[yu]+(n-mp[yu])%(cnt-mp[yu]+1);
#include
#include
#include
#include
#include
using namespace std;
typedef
long
long ll;
mapmp;
intmain()
if(n>mp[yu]
) n=mp[yu]
+(n-mp[yu])%
(cnt-mp[yu]+1
);yu=a%b;
//yu初始化
for(
int i=
1;i) yu*=10
;printf
("%lld"
,yu/b)
; yu%
=b; yu*=10
;printf
("%lld"
,yu/b)
; yu%
=b; yu*=10
;printf
("%lld\n"
,yu/b)
;return0;
}
2017第八屆藍橋杯 分巧克力
簡單二分 題目 兒童節那天有k位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友們。小明一共有n塊巧克力,其中第i塊是hi x wi的方格組成的長方形。為了公平起見,小明需要從這 n 塊巧克力中切出k塊巧克力分給小朋友們。切出的巧克力需要滿足 1.形狀是正方形,邊長是整數 2.大小相同 例如一塊...
2017 第八屆藍橋杯 魔方狀態
二階魔方就是只有2層的魔方,只由8個小塊組成。如圖p1.png所示。小明很淘氣,他只喜歡3種顏色,所有把家裡的二階魔方重新塗了顏色,如下 前面 橙色 右面 綠色 上面 黃色 左面 綠色 下面 橙色 後面 黃色 請你計算一下,這樣的魔方被打亂後,一共有多少種不同的狀態。如果兩個狀態經過魔方的整體旋轉後...
藍橋杯第八屆決賽
精神狀態不好的時候怎麼寫 真的哭了,一堆sb錯誤 對於16進製制,我們使用字母a f來表示10及以上的數字。如法炮製,一直用到字母z,就可以表示36進製。36進製中,a表示10,z表示35,aa表示370 你能算出 many 表示的數字用10進製表示是多少嗎?請提交乙個整數,不要填寫任何多餘的內容 ...