Страница: 1 |
Страница: 1 |
Вопрос: Help ME!!!
Добавлено: 13.11.04 17:55
Автор вопроса: ashdan87 | Web-сайт:
Помогите решить задачу: Составить алгоритм нахождения двузначных чисел, сумма квадратов цифр которых делиться на 13.
Вот как я ее решаю на VisualBasic:
Dim i As Long
Dim n1 As Long
Dim n2 As Long
For i = 10 To 99’ все двузначные числа
n1 = Mid(i, 1, 1)’режем первую цифру
n2 = Mid(i, 2, 1)’режем вторую цифру
If (n1 ^ 2 + n2 ^ 2) Mod 13 = 0 Then’ если остаток от деления равен = 0 то число делиться на 13
List1.AddItem n1 & n2’добавляем найденное число в листбокс…
End If
Next i
Такой код прекрасно работает на VisuaBasic’e, но как решить такую задачу на QBASIC???
Ведь если написать такую строку: n1 = Mid(i, 1, 1) он выдаст ошибку Subscript out of range? Получается, что оно хавает его как строку а не число, а I и n1- числовые переменные… Помогите… Если не трудно пришлите ответ мне на мыло: ashdan87@mail.ru
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #1
Добавлено: 13.11.04 18:07
Мда, на QBasic применить MID$ к целочисленному типу крайне сложно
Номер ответа: 2
Автор ответа:
ashdan87
ICQ: 347384533
Вопросов: 3
Ответов: 5
Web-сайт:
Профиль | | #2
Добавлено: 13.11.04 18:27
а как сделать? подскажи....
Номер ответа: 3
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #3
Добавлено: 13.11.04 18:59
Очень просто
 im i2 as String
...
i2=Ltrim$(Str$(i))
А затем применяешь MID$ к i2
Ну и ещё по поводу Long'а у меня сомнения. По моему, раз QB 16-битный, то такого целочисленного типа может и не быть. А вообще, для твоих целей хватит и типа BYTE, у которого диапазон от 0 до 255.
Номер ответа: 4
Автор ответа:
ashdan87
ICQ: 347384533
Вопросов: 3
Ответов: 5
Web-сайт:
Профиль | | #4
Добавлено: 13.11.04 19:43
Нет, так тоже пашет. мне друг помог решить, получилось так:
For i = 10 to 99
n1 = (i - i mod 10)/10' пераое число
n2 = (i) mod 10'второе число
if (n1^2) + (n2^2) mod 13 = 0 Then
print n1, n2
end if
next i
Номер ответа: 5
Автор ответа:
ashdan87
ICQ: 347384533
Вопросов: 3
Ответов: 5
Web-сайт:
Профиль | | #5
Добавлено: 13.11.04 19:44
я имел в виду что так, как ты предложил неработает..
Номер ответа: 6
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #6
Добавлено: 13.11.04 20:42
Скорее это ты предложил. Твой алгоритм заранее был неверен, но я не стал его поправлять, т.к. не знаю уровня твоих знаний.
Номер ответа: 7
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #7
Добавлено: 13.11.04 20:49
А то что в ответе 3 по идее должно работать. Покажи код как ты это записал.