Составить программу, которая для натуральных чисел m и n вычисляет период десятичной дроби m/n - VB
Формулировка задачи:
Помогите пожалуйста сделать такую интересную программу(а то все перепробывал нифига не выходит)
Составить программу, которая для натуральных чисел m и n вычисляет период десятичной дроби m/n. Hапример, для дроби 1/7 периодом будет (142857), а если дробь конечная, то ее период состоит одной цифры 0.
Решение задачи: «Составить программу, которая для натуральных чисел m и n вычисляет период десятичной дроби m/n»
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