C++ 小数循环周期输出后结束其输出

来源:百度知道 编辑:UC知道 时间:2024/05/30 23:34:57
对于n=2,3,4,...,50,输出1/n的十进制表示的字符串。要求每当十进制小数的第一个循环周期输出后,就结束该数的输出。
以下为样板:
1/2=0.50
1/3=0.3
1/4=0.250
1/5=0.20
1/6=0.16
1/7=0.142857

备注:尽量用简单的C语言,尽量少的函数调用~
注意一定要在小数出现循环节的时候结束输出啊。。。还有这个要用字符串输出。。。

分数太少,不可能帮你写出完整程序,告诉你方法吧。
首先你得定义一个表,用来放余数,可以是静态的,也可以是动态的,也可以是一个足够找的数组。
举一个比较好的例子:
1/7:
第一次除。分子X10.得10 然后求10%7 得3 把余数放入表中(3)。
第二次除。余数X10.得30 然后求30%7 得2 查表看有没有一样的余数,有则碰到循环,计算完毕,无则把余数放入表中(3,2)。
第三次除。余数X10,得20 然后求20%7 得6 查表看有没有一样的余数,有则碰到循环,计算完毕,无则把余数放入表中(3,2,6)。依次类推。
注意每一次计算余数时同样得把商保存,在输出时把商连起来。

for (int i=2; i<=n; ++i) {
printf ("1/%d=%f\n", i, 1.0f/(double)i);
}