Страница: 1 |
Страница: 1 |
Вопрос: Опять чайница!
Добавлено: 22.10.06 21:06
Автор вопроса: Ольга
Деление не в цикле. Число 17112227565 должно делится на 15!
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #1
Добавлено: 22.10.06 21:29
а оно и делится...1140815171
Номер ответа: 2
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #2
Добавлено: 23.10.06 11:00
не надо просто засовывать это число в Integer
Номер ответа: 3
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #3
Добавлено: 23.10.06 11:29
На 15 или 15! ? Это две большие разницы. Тем не менее, это число не поместится и в Long
Номер ответа: 4
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #4
Добавлено: 23.10.06 16:09
a = 17112227565/15
Номер ответа: 5
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #5
Добавлено: 23.10.06 16:13
опа... чё то я пропустил (!)... вообще имхо дурацкая идея была приделать восклицательный знак в математику - это всё таки литературный символ... тогда ясно почему оверфлоу... но мне калькулятор (железный) выдаёт 0.013086001
Номер ответа: 6
Автор ответа:
Ольга
Вопросов: 3
Ответов: 2
Профиль | | #6
Добавлено: 23.10.06 20:22
Ребят, спасибо за поддержку! Восклицательный знак от избытка чувств.As Double есть. Привожу задачу целиком: "Два двоичных числа вводятся строкой своих цифр, причем первое содержит не более 72 знаков, а второе, меньшее, – не более 14. Проверить делится ли первое число на второе".
Тест Первое число Второе число Ответ
1 1111011101101 1010111 Да
2 1111101111011101101 11101 Нет
3 11111101111101111011101101 11011 Нет
4 1111111011111101111101111011101101 1111 Да
При прохождении последнего теста выскакивает ошибка. В чем дело, понять не могу!
Номер ответа: 7
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #7
Добавлено: 23.10.06 22:00
Вообще говоря, правильнее здесь использовать массивы и вычитание для определения делимости.
Номер ответа: 8
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #8
Добавлено: 23.10.06 23:29
Можно поподробнее?
Номер ответа: 9
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #9
Добавлено: 23.10.06 23:57
1 1111011101101 1010111 Да
2 1111101111011101101 11101 Нет
3 11111101111101111011101101 11011 Нет
4 1111111011111101111101111011101101 1111 Да
При прохождении последнего теста выскакивает ошибка. В чем дело, понять не могу!
Номер ответа: 10
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #10
Добавлено: 24.10.06 20:00
1111011101101 / 1010111
Добавляем второму числу максимальное число нулей в конец так, чтобы оно было меньше первого и вычитаем его из первого:
1111011101101
1010111000000
-------------
100100101101
Повторяем операцию с полученным числом
100100101101
10101110000
------------
1110111101
и т.д., пока не получим число, меньшее первоначального второго - это будет остаток. Число необходимых вычитаний не превышает log[2](N)
Номер ответа: 11
Автор ответа:
Ольга
Вопросов: 3
Ответов: 2
Профиль | | #11
Добавлено: 02.11.06 08:26
Dim n, m, k, i As Long, strA, strB As String
Private Sub cmd1_Click()
strA = InputBox("Введите первое двоичное число", "Первое число"
strB = InputBox("Введите второе двоичное число", "Второе число"
'Определение количества символов во втором числе
n = 0: k = Len(strB)
'Перевод второго числа в десятичное
For i = 1 To k
n = n * 2 + Val(Mid$(strB, i, 1))
Next
'Определение количества символов в первом числе
m = 0: k = Len(strA): i = 1
'Перевод первого числа в десятичное
While i <= k
m = m * 2 + Val(Mid$(strA, i, 1))
i = i + 1
Wend
frm1.Print Str(m), Str(n)
'Проверка на делимость
m = m Mod n
If m = 0 Then
MsgBox "Число " + strA + " делится на число " + strB, 64, "Ответ"
Else
MsgBox "Число " + strA + " не делится на число " + strB, 64, "Ответ"
End If
End Sub