题目描述
分数a/b化为小数后,小数点后第n位的数字是多少?
输入
三个正整数a,b,n (0<a<b<100,1≤n≤10000),相邻两个数之间用单个空格隔开。
输出
一个数字。
样例输入
1 2 1
样例输出
5
代码实现:
首先进行了暴力解法,不断* 10使得所求小数位放置在个位,最后扩大后的a先除b,再模10得到结果;但a数字过大,longlong都无法存储;故将最后的除b操作放在*10循环中,不断除b取余,同样将所求小数位数前进;最终得到最小的余数,将余数再除以b,得到最终结果。
#include<iostream>
#include<iomanip>
#include<cmath>
#include<cstring>
#include<vector>
#define INF 0x3f3f3f3f
using namespace std;
int main(){
int b,c;
long long a;
cin>>a>>b>>c;
while(c--){
a%=b;
a*=10;
}
a/=b;
cout<<a;
}