当前位置: 代码迷 >> C语言 >> [求助]每当十进制小数的第一个循环周期输出后,就结束该数的输出。
  详细解决方案

[求助]每当十进制小数的第一个循环周期输出后,就结束该数的输出。

热度:501   发布时间:2006-11-03 11:32:24.0
x num denom是int  (int)似乎没必要了
----------------解决方案--------------------------------------------------------
x=num/denom;那x显然是0;
下面的if(x)就废了 直接从else 后面的开始就行

----------------解决方案--------------------------------------------------------

我稍微说一下吧
函数gcd()是用来求最大公约数.
num表示分子,denom表示分母.gcd是用来化简num/denom的,即约去其中的公因子

函数void f(int num,int denom,char *result)
这里num可以大于denom,也就是可以出现12/9的形式.
x是用来保存整数部分的.

所以说void f(int num,int denom,char *result)具有通用性.不一定分子就是1,你想设成多少就多少,只要传进函数就行了


----------------解决方案--------------------------------------------------------
以下是引用xpentium在2006-11-3 0:51:26的发言:

用java 编一个吧
基本思想:这个思想有点像十进制数求二进制数的过程,每商一个数都会得到一个相应的余数,当余数重复出现是,这时后面商的数肯定会与前面的一样,也就是开始循环了。

该思想是错误的.


----------------解决方案--------------------------------------------------------

麻烦问一下版主那个void len函数是作什么用的呢


----------------解决方案--------------------------------------------------------
void len(int de,int *len1,int *len2)
de表示分母
分别求的:
len1是延迟长度,即小数部分非循环部分长度
len2是循环节长度
----------------解决方案--------------------------------------------------------

哦 明白了 谢谢你


----------------解决方案--------------------------------------------------------
  相关解决方案