|
这个试下,感觉因为除数不变,只要循环里出现的被除数曾经出现过,那么应该后面就会出现重现前面得到的结果,也就是出现了循环的情况
- Function myDiv(ByVal fD1 As Long, ByVal fD2 As Long) As String
- Dim Dic As Object, T#, N&, C&
- T = fD1 Mod fD2
- If T = 0 Then
- myDiv = "整除"
- GoTo Skip
- End If
- Set Dic = CreateObject("scripting.dictionary")
- C = 1
- Dic(T) = 1
- For N = 0 To fD2
- C = C + 1
- T = T * 10
- T = T Mod fD2
- If T = 0 Then
- myDiv = "整除"
- GoTo Skip
- Else
- If Dic.exists(T) Then
- myDiv = Choose(Dic(T), "首", "次", "末") & "位循环"
- GoTo Skip
- Else
- Dic(T) = C
- End If
- End If
- Next N
- myDiv = "无限不循环"
- Skip:
- Set Dic = Nothing
- Application.Volatile
- End Function
复制代码 我没办法用PI来测试 |
评分
-
1
查看全部评分
-
|