Тема: Задачка!!!
Показать сообщение отдельно
Старый 03.12.2006, 13:45   #18
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Задачка!!!

str - переводит число в строку, т.е. например число 123 будте строкой "123" синтаксис такой a$=str(b%). ето необходимо чтоюб было можно использовать команду mid$. Она нужна для определения символа / группы символов в строке. Синтаксис такой : h$=mid(s$,первый сивол, скока символов). Например mid("собака",2,3) вернет "оба", а mid("собака",3,3) вернет "бак". В общем твоя задача сведется к приведению числа к строке, как первого так и второго.
Разберем твой пример:
9562814547697752438 число большое и блитз его не держит, поэтому объявим сразу строкой, второе тоже ради удобства.
[blitz]
a$="9562814547697752438"
b$="47"
[/blitz]
далее определяем скока символов в каждой из строк:
[blitz]
a$="9562814547697752438"
b$="47"
ca=len(a)
cb=len(b)
[/blitz]
далее задаем новую строку, в которую будем записывать результат:
[blitz]
a$="9562814547697752438"
b$="47"
ca=len(a)
cb=len(b)
rs$=""
[/blitz]

далее идет собственно само решение, берем первый символ первой строки и сравнивапес его со всеми символами второй строки, если
где-то он есть, то прибавляем его к новой строке (там где результат).

[blitz]
a$="9562814547697752438"
b$="47"
ca=Len(a)
cb=Len(b)
rs=""
For i=1 To ca
For j=1 To cb
If Mid(a,i,1)=Mid(b,j,1) Then rs=rs+Mid(b,j,1)
Next
Next
Print rs
[/blitz]

у этого метода сразу просматривается огромный минус, все цифры во второй строке должны встречаться только один раз, так как это в условиях не оговаривалось, будем делать так чтобы во второй строке символы могли повторяться. Собственно не мудря слишкомЮ, добавляем exit после rs=rs+Mid(b,j,1) и получаем:

[blitz]
a$="9562814547697752438"
b$="47"
ca=Len(a)
cb=Len(b)
rs=""
For i=1 To ca
For j=1 To cb
If Mid(a,i,1)=Mid(b,j,1) Then rs=rs+Mid(b,j,1):Exit
Next
Next
Print rs
[/blitz]

вот и все.

p.s. Надеюсь ты следил за мыслью, а не листингом кода.
(Offline)
 
Ответить с цитированием