暴力40分,要注意n的取值范围!!!!
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
ll a,b,n;
while(cin>>a>>b>>n)
{
ios::sync_with_stdio(false);
int num1=0,num2=0,num3=0;
int cnt=0;
a=a%b;
while(1)
{
while(a<b)
{
a=a*10;
}
int t=a/b;
cnt++;
a=a%b;
// printf("%d--%d--%d\n",t,a,cnt);
if(cnt==n) num1=t;
else if(cnt==n+1) num2=t;
else if(cnt==n+2)
{
num3=t;
break;
}
if(a==0)
{
break;
}
}
cout<<num1<<num2<<num3<<endl;
}
}
ac代码:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
ll a,b,n;
ios::sync_with_stdio(false);
while(cin>>a>>b>>n)
{
a=a%b;
while(n>10)///每次取10位,快速逼近小数点 确定K的位置
{
n-=10;
a=a*1e10;
a%=b;
}
for(int i=1;i<=n+2;i++)
{
a=a*10; ///一位
if(i>=n)
{
printf("%d",a/b);
}
a=a%b;
}
printf("\n");
}
}