求助!醒目!编程遇到了瓶颈,请帮忙看看怎么找循环节!
是这样的,a/b a/b可以得到无限循环小数,比如1/243=0.00411522633744855......我想编程在这个字符串中找到循环节
之前试过的方法如下:
For i,1,dim(s)
For j,i+1,dim(s)
IF mid(s,i,5)=mid(s,j,5)
mid(s,i,j-1)->xunhuanjie
EndFor
EndFor
但这种算法更本应对不了短循环节:
如 0.333333......循环节判断为“33333”
还有可能遇到碰巧相同的情况:
如混循环小数 不知道坛友有什么好方法没有 本帖最后由 超越说 于 2016-7-1 16:42 编辑
小数精度有限。。。
如果不需要处理字符串的话,建议直接用数学方法解决。。。下面这个只能做纯循环。
Define test(number)=
Func
Local m,n
m:=0.1
n:=9
While mod(m,1)≠0
m:=number*n
n:=n*10+9
EndWhile
Return m
EndFunc
超越说 发表于 2016-7-1 16:36
小数精度有限。。。
如果不需要处理字符串的话,建议直接用数学方法解决。。。下面这个只能做纯循环。
谢谢,不过我希望模拟一下真实的小学生的计算。 要找循环节需要先写无限精度小数计算...用 basic 就有点捉鸡了
请参考此段代码 http://pastebin.ubuntu.com/18781200/
可以直接把结果存入字符串,然后再搜索,不过目测会很占内存
页:
[1]