Составить программу, которая для натуральных чисел m и n вычисляет период десятичной дроби m/n - VB

Формулировка задачи:

Помогите пожалуйста сделать такую интересную программу(а то все перепробывал нифига не выходит) Составить программу, которая для натуральных чисел m и n вычисляет период десятичной дроби m/n. Hапример, для дроби 1/7 периодом будет (142857), а если дробь конечная, то ее период состоит одной цифры 0.

Код к задаче: «Составить программу, которая для натуральных чисел m и n вычисляет период десятичной дроби m/n - VB»

textual
Function p$(n, m)
Const L = 200
Dim tr%, i%, j%, k%, o%
Dim t$, r$, r1r
Dim nr
 
nr = n: t = ""
 
For i = 1 To L
    n = n - Int(n / m) * m
      t = t & Int(10 * n / m)
        n = n * 10
Next i
 
For o = 1 To L \ 3
   For j = o To L \ 3 + 1
       For i = j To L \ 3 + 2
           r = Mid(t, j, i - j + 1)
           tr = 0: r1 = 0
           For k = i + 1 To L - (i - j + 1) Step Len(r)
               r1 = Mid(t, k, i - j + 1)
                 If r1 <> r Then
                    tr = 1
                    Exit For
                 End If
           Next k
           If tr = 0 Then
              p = nr & "/" & m & " = " & nr \ m & "." & Mid(t, 1, j - 1) & "(" & r1 & ")"
              Exit Function
           End If
        Next i
  Next j
Next o
p = nr & "/" & m & " = " & nr \ m & "." & Mid(t, 1, j - 1)
End Function
 
Private Sub Command1_Click()
m = Val(Text2.Text)
n = Val(Text1.Text)
If m <> 0 Then Label1 = p(n, m)
End Sub

7   голосов, оценка 4.000 из 5


СОХРАНИТЬ ССЫЛКУ