1 (изменено: kamar, 2020-02-08 00:30:14)

Тема: VBS: Сколько раз в числе встречается единица

Дано целое число. Найти сколько раз в его десятичной записи встречается единица.

2

Re: VBS: Сколько раз в числе встречается единица

num = 1010111
tmp = CStr(num)
res = len(tmp) - len(replace(tmp, "1", ""))

MsgBox res

3

Re: VBS: Сколько раз в числе встречается единица

JSman
Можете объяснить значения строк?

4 (изменено: Vladimir, 2020-02-11 00:07:46)

Re: VBS: Сколько раз в числе встречается единица

kamar
А вы взяли себе за труд прочитать хотябы это http://script-coding.com/wsh_chm.zip?

5

Re: VBS: Сколько раз в числе встречается единица

kamar, я твой препод по информатике, не пытайся меня обмануть, решай сам!!!

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

6 (изменено: andypetr, 2020-02-11 20:09:55)

Re: VBS: Сколько раз в числе встречается единица

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+. Выпилит модератор, как пить дать. Аминь.

7

Re: VBS: Сколько раз в числе встречается единица

kamar
Второе предупреждение по оформлению темы. Ознакомьтесь с Правилами публикации. Не сможете понять о чем я говорю, то попрощаемся.

Темы объединил.

8

Re: VBS: Сколько раз в числе встречается единица

With New RegExp
	.Pattern = "1"
	.Global = True
	MsgBox .Execute("543344111").Count
End With

Докину ещё вариант.

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !