Страница: 1 |
Страница: 1 |
Вопрос: Help me, please
Добавлено: 15.09.04 08:41
Автор вопроса: BlDm
Народ, помогите пожалуйста решить пару задечек, а то у меня с логоритмами провал...
1. Произвести циклическую перестановку цифр данного числа на цифру вперёд, т.е. первую цифру - на второе место, вторую на третье и т.д., а последнюю - на первое место. Пример: 1623 - 3162
2. Проверить являются ли два числа "зеркальные". Например: 123-321. Если нет, то как определить номер первой несовподающей цифры и пару этих чисел.
ВСЕ ОПЕРАЦИИ ВЫПОЛНЯЮТСЯ БЕЗ ПРИМЕНЕНИЯ СТРОКОВЫХ ФУНКЦИЙ. (ЦЕЛОЧИСЛЕННАЯ АРИФМЕТИКА).
Заранее благодарю.
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
Mihalыch
ICQ: 373-509-101
Вопросов: 56
Ответов: 330
Профиль | | #1
Добавлено: 15.09.04 09:21
Ну совсем без строковых операций не знаю. А по поводу второго вопроса можно так, убери дефис, сцепи 123 & 321 (это и есть строковая операция), потом передай получившееся число 123321 вот в эту процедуру.
Sub main()
 im n As Long
 im b As Long
 im a As Byte
 im c As Long
 im d As Long
n = Val(InputBox("Введите число", "Проверка")
b = n
d = 1
 o
c = n
a = n Mod 10
 o While c >= (10 * d)
c = c \ 10
Loop
If a <> c Mod 10 Then
MsgBox "Число " & b & " - не палиндром"
Exit Sub
Else
n = n \ 10
d = d * 10
End If
Loop While n > 0
MsgBox "Число " & b & " - палиндром"
End Sub
Правда здесь число вводится с помощью InputBox, но не думаю, что это проблема.
Номер ответа: 2
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #2
Добавлено: 15.09.04 09:24
По второму вопросу:
Dim str As String
str = "123-321"
If StrReverse(str) = str Then
MsgBox "Палиндром!"
End If
Номер ответа: 3
Автор ответа:
Fallout
Вопросов: 10
Ответов: 387
Web-сайт:
Профиль | | #3
Добавлено: 15.09.04 09:41
Да уже была такая тема ... может ФАК сделать по частым темам а?