列表

详情


NC220752. 这叕是一道水题

描述

我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数。
如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式。


本题的任务是:在上面的约定下,求整数除法小数点后的第n位开始的3位数。

输入描述

一行三个整数:a b n,用空格分开。a是被除数,b是除数,n是所求的小数后位置(0<a,b,n<1000000000)

输出描述

一行3位数字,表示:a除以b,小数后第n位开始的3位数字。

示例1

输入:

1 8 1

输出:

125

示例2

输入:

1 8 3

输出:

500

示例3

输入:

282866 999000 6

输出:

914

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++ 解法, 执行用时: 3ms, 内存消耗: 396K, 提交时间: 2023-08-12 11:27:40

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a,b,n;
ll mod;
ll qp(ll x,ll y){
    ll ret=1ll;
    while(y){
        if(y&1) ret=ret*x%mod;
        y>>=1;
        x=x*x%mod;
    }
    return ret;

}
int main()
{
    scanf("%lld%lld%lld",&a,&b,&n);
    a%=b;
    mod=b;
    a=a*qp(10,n-1)%b;
    printf("%03lld\n",1000*a/b);
    return 0;
}

上一题