Тема: VBS: Сколько раз в числе встречается единица
Дано целое число. Найти сколько раз в его десятичной записи встречается единица.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Серый форум → Общение → Windows Script Host, HTA (VBScript, JScript) → VBS: Сколько раз в числе встречается единица
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Дано целое число. Найти сколько раз в его десятичной записи встречается единица.
num = 1010111
tmp = CStr(num)
res = len(tmp) - len(replace(tmp, "1", ""))
MsgBox res
JSman
Можете объяснить значения строк?
kamar
А вы взяли себе за труд прочитать хотябы это http://script-coding.com/wsh_chm.zip?
kamar, я твой препод по информатике, не пытайся меня обмануть, решай сам!!!
kamar
Ответили ведь уже в предыдущей теме.
JSman http://forum.script-coding.com/viewtopic.php?id=15171
Самое краткое и эффективное решение - через функцию Replace(), а далее она сама оптимизированным компилированным двоичным кодом решает.
num = 1010111
tmp = CStr(num)
res = len(tmp) - len(replace(tmp, "1", ""))
MsgBox res
Через циклы Do While - ну, если сразу и не проверяя, ...
num = 1010111
tmp = CStr(num)
res = 0
i = 1
Do While i <= Len(tmp)
If Mid(tmp, i, 1) = "1" Then
res = res + 1
End If
i = i + 1
Loop
MsgBox res
PS. Название "новой" темы, конечно, 5+. Выпилит модератор, как пить дать. Аминь.
kamar
Второе предупреждение по оформлению темы. Ознакомьтесь с Правилами публикации. Не сможете понять о чем я говорю, то попрощаемся.
Темы объединил.
With New RegExp
.Pattern = "1"
.Global = True
MsgBox .Execute("543344111").Count
End With
Докину ещё вариант.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться