#63. 【循环】求小数的某一位

【循环】求小数的某一位

题目描述

分数 ab\frac{a}{b} 化为小数后,小数点后第 nn 位的数字是多少?

题目格式

输入

三个正整数 a,b,na, b, n,相邻两个数之间用一个空格隔开。0<a<b<100,1<=n<=1000 < a < b < 100, 1 <= n <= 100

输出

一个数字。

题目样例

1 2 1
5

题目解释

输入 1 2 1 时代表,求 12\frac{1}{2} 的小数点后第 11 位的数字!

题目提示

1、想一想列竖式计算的过程:

  • 第一次计算: 被除数÷除数被除数 \div 除数
  • 第二次计算: 上一次计算的余数×10÷除数上一次计算的余数 \times 10 \div 除数
  • 第三次计算:上一次计算的余数×10÷除数上一次计算的余数 \times 10 \div 除数
  • 后面的以此类推,不再赘述。

2、以 67÷8767 \div 87 为例。

  • 第零次计算:6767 除以 8787 除不开,则 商 006767
  • 第一次计算:在 6767 后补 00(相当于 67×1067 \times 10),然后用 670670 除以 8787, 商 776161
  • 第二次计算:在 6161 后补 00(相当于 61×1061 \times 10),然后用 610610 除以 8787, 商 7711
  • 第三次计算:在 11 后补 00(相当于 1×101 \times 10),然后用 1010 除以 8787 除不开,则 商 001010
  • 第四次计算:在 1010 后补 00(相当于 10×1010 \times 10),然后用 100100 除以 8787,商 111313
  • 第五次计算:在 1313 后补 00(相当于 13×1013 \times 10),然后用 130130 除以 8787,商 114343
  • 第六次计算:在 4343 后补 00(相当于 43×1043 \times 10),然后用 430430 除以 8787,商 448282

小数点后第 nn 位的数字就是 按照上述方式 除 nn 次以后的

为什么“第一次“叫第零次计算呢?因为题目告诉 a<ba < b,那么这个分数是真分数,第一次计算结果一定是 00,它是整数部分,不算小数点后的某一位。