[藍橋杯][2017年第八屆真題]小數第n位

題目描述

我們知道,整數做除法時,有時得到有限小數,有時得到無限循環小數。
如果我們把有限小數的末尾加上無限多個0,它們就有了統一的形式。


本題的任務是:在上面的約定下,求整數除法小數點後的第n位開始的3位數。

輸入

一行三個整數:a b n,用空格分開。a是被除數,b是除數,n是所求的小數後位置(0<a,b,n<1000000000)

輸出

一行3位數字,表示:a除以b,小數後第n位開始的3位數字。

樣例輸入

1 8 1

樣例輸出

125
#include<cstdio>
long long a,b,c,d,e;
int main(){
    scanf("%d%d%d",&a,&b,&c);
    a=a%b;
    while(c>10){    //以每10位相除,提高速度
        a*=1e10;
        c-=10;
        a=a%b;
    }
    for(int i=0;i<c+2;i++){
        a*=10;
        if(i>=c-1)e=a/b,printf("%d",e);
        a=a%b;
    }
    printf("\n");
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章