蓝桥杯 历届试题 小数第n位
生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯 历届试题 小数第n位
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
同個人網站 https://www.serendipper-x.cn/,歡迎訪問 !
資源限制
時間限制:1.0s 內存限制:256.0MB
問題描述
我們知道,整數做除法時,有時得到有限小數,有時得到無限循環小數。
如果我們把有限小數的末尾加上無限多個0,它們就有了統一的形式。
本題的任務是:在上面的約定下,求整數除法小數點后的第n位開始的3位數。
輸入格式
一行三個整數:a b n,用空格分開。a是被除數,b是除數,n是所求的小數后位置(0<a,b,n<1000000000)
輸出格式
一行3位數字,表示:a除以b,小數后第n位開始的3位數字。
思路:
問題可轉化為 a / b * 10n+2 % 1000
需要用下面的公式:
x/d%m = x%(d*m)/d
在求解10n+2時,用快速冪求解即可
def qpower(a, b, mod):base = aans = 1while b:if b&1:ans = ((ans%mod)*(base%mod))%modbase = (base%mod)*(base%mod)b >>= 1return ansa, b, n = list(map(int, input().split())) mod = b*1000 c = qpower(10, n+2, mod) res = (a%mod*c%mod)%mod print(res//b)總結
以上是生活随笔為你收集整理的蓝桥杯 历届试题 小数第n位的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客16502 螺旋矩阵
- 下一篇: 数据结构——单链表的C++实现