测试链接
总时间限制: 1000ms 内存限制: 65536kB
描述
分数a/b化为小数后,小数点后第n位的数字是多少?
输入
三个正整数a,b,n,相邻两个数之间用单个空格隔开。0 < a < b < 100,1 <= n <= 10000。
输出
一个数字。
样例输入
1 2 1
样例输出
5
思路
开始我直接想到了用a/b算出小数后,按照求n位就是乘以10的n次幂,再对10取模求解,发现n可以取10000,数据一大,double就会有误差。后来想到了求小数就是将被除数和除数取余,舍去整数值,这样计算就简单了,然后去多少位整数就是10的n次幂,在对除以b取整,就算出小数位了。
#include<iostream>
using namespace std;
int main()
{ int a,b,n;
cin>>a>>b>>n;
for(int i=1;i<=n;i++)
{
a%=b;
a*=10;
}
a/=b;
cout<<a;
return 0;
}