Страница: 1 |
Прошу помочь решить небольшую задачку!!! То есть в нашем случае: для двухсот- это 1, ста-1, пятидесяти-0, двадцати- 20, десяти-0,пяти-0.
Приведу опять пример. Есть число 65. Но как это написать на VB??? Вот набросал кое что: Dim lAmount As Long lAmount = Val(Text1.Text) Debug.Print Val(Text1.Text) Страница: 1 |
Вопрос: Задачка с числами
Добавлено: 31.12.03 09:05
Автор вопроса: Woolfik
Имеется число, кратное ряти. Например, 340. Мне нужно определить, сколько раз оно делится на 200, 100, 50, 20, 10, и 5 поочередно.
Вот такой вот нужен алгоритм для любого числа, кратного пяти.
Всем, кто откликнется - большое спасибо.
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
Woolfik
Вопросов: 22
Ответов: 25
Профиль | | #1
Добавлено: 31.12.03 09:09
Объясняю подробнее!
Алгоритм такой. Возьмем другое число(кратное 5).
Например 555.
Нам нужно проверить сколько раз оно делиться по убывающей от 200, 100, 50, 20, 10, 5. ПООЧЕРЕДНО
Проверяем.
Раскладываем число и получаем ответ
Делим на 200, получаем= 2, потом на 100, получаем 1, потом на 50- тоже 1,
потом на 20 - это 0, на 10 - это 0, на 5 - это 1.
Алгоритм похож, как в банкомате выдают сумму наименьшим количеством купюр, начиная с наибольшей. У меня только числа идут с 200...
Буду благодарен.
Номер ответа: 2
Автор ответа:
Woolfik
Вопросов: 22
Ответов: 25
Профиль | | #2
Добавлено: 31.12.03 09:11
Проверяем
двухсотку- получаем 0,
сотку- 0,
пятидесятку- 1,
двадцатку- 0,
десятку -1,
пятерку- 1.
Номер ответа: 3
Автор ответа:
boevik
Хранитель чата
ICQ: 137392264
Вопросов: 8
Ответов: 557
Web-сайт:
Профиль | | #3
Добавлено: 31.12.03 09:31
Dim lComponents(5)
Dim i As Integer
lComponents(0) = Int(lAmount / 200)
lAmount = lAmount - lComponents(0) * 200
lComponents(1) = Int(lAmount / 100)
lAmount = lAmount - lComponents(1) * 100
lComponents(2) = Int(lAmount / 50)
lAmount = lAmount - lComponents(2) * 50
lComponents(3) = Int(lAmount / 20)
lAmount = lAmount - lComponents(3) * 20
lComponents(4) = Int(lAmount / 10)
lAmount = lAmount - lComponents(4) * 10
lComponents(5) = Int(lAmount / 5)
For i = 0 To 5
Debug.Print lComponents(i);
Next i
Debug.Print