#问题描述
给定一个大于2的自然数n,求1/n。要求输出小数点后N位有效数字(小数点前的0和小数点不输出),2≤N≤5000。不输出N位有效数字中末尾的0。
#输入描述
输入文件中包含多个测试数据。每个测试数据占一行,为两个自然数n和N。输入文件最后一行为0,表示输入结束。
#输出描述:
对输入文件中的每个测试数据,按要求输出1/n的N位有效数字。
#样例输入:
4 8
7 8
0
#样例输出:
25
14285714
#思路
假如按照正常情况用1/n得到小数点后的,对于一些除不完等数据进行精度处理较为麻烦。我们既然是想要小数点后的数,可以在第一次对1进行扩大10倍,再除以n就得到小数点后第一位数,存入数组,再将余出来的数进行扩大10倍进而求下一位数,用循环进行嵌套N次,就可以得到小数点后N位,再对数组进行去零操作即可。
例如:4 8 输出: 25
1、110/4=2;第一位数
2、110%4=2;用作下一次扩大的数
3、210/4=5;
4、210%4=0;
5、后面取到的数均为0
6、答案为25000000
优点:成功的把除法转化为乘法!
代码:
# include<iostream>
using namespace std;
int main