小数点后第n位,等同于乘以10的n次方,结果的个位数部分。即a*1eN/b mod 10
。但是根据测试数据,中间结果会比较大。根据同余数的性质,中间可以先对b取模。即(a*1eN mod 10*b) / b
。根据同余的性质,乘以1eN的过程可以分步计算;可以得出以下代码:
#include<stdio.h>
int main(){
int a,b,n;
scanf("%d %d %d", &a,&b,&n);
while(n--){
a=a*10;
a=a%(10*b);
}
int r=a/b;
if(r!=0)
printf("%d\n",r);
else
printf("null\n");
return 0;
}