У скольких целых чисел, лежащих в диапазоне от 1 до 1000, есть цифра 3?

Задачи с IT-собеседованийРубрика: СтажерУ скольких целых чисел, лежащих в диапазоне от 1 до 1000, есть цифра 3?
0 +1 -1
danil_mogilniy Админ. спросил 2 года назад

У скольких целых чисел, лежащих в диапазоне от 1 до 1000, есть цифра 3?

MIKS Админ. ответил 2 года назад

Решение на Python3 — https://pastebin.com/k0Pt43MW

J0hnTV Админ. ответил 2 года назад

len([i for i in range(1001) if str(3) in str(i)])

st3p Админ. ответил 2 года назад

Решение на C++ — https://pastebin.com/uKnMAGds

fdsea Админ. ответил 2 года назад

у ста) Вроде не просят посчитать число троек, просят посчитать у СКОЛЬКИХ чисел есть цифра три)

anatoliy_8493 Админ. ответил 2 года назад

var amount = 0;

for (var x = 0; x < 1000; x++) {
if (~String(x).indexOf('3')) {
amount++
}
}

bestel Админ. ответил 2 года назад

Мое Ruby-решение: (1..1000).map(&:to_s).count { |i| i.include?(‘3’) }

jazator Админ. ответил 2 года назад

461

Obscuralife Админ. ответил 2 года назад

int main()
{
setlocale(LC_ALL, «»);
int x; // перменная цикла
int a; //переманная взятия остатка от деления на 10
int b; // переменная деления на 10

for (x = 1; x <= 1000; x++)
{
a = x % 10;
b = x / 10;

if (a == 3) coun++;
if (b == 3) coun++;

}
cout << "Количество троек в диапозоне: " <<coun << endl;

Obscuralife Админ. ответил 2 года назад

Поправочка: забыл скопировать «static int coun ;» и надо добавить еще ветвление.Программа не корректно считает после 100

Obscuralife Админ. ответил 2 года назад

for (x = 1; x 10) {
if (a == 3) coun++;
if (b == 3) coun++;
}

}
cout << "Количество троек в диапозоне: " <<coun << endl;

ответ 199

Obscuralife Админ. ответил 2 года назад

for (x = 1; x 10) {
if (a == 3) coun++;
if (b == 3) coun++;
}

}
cout << "Количество троек в диапозоне: " <<coun << endl;

ответ 199

Obscuralife Админ. ответил 2 года назад

на С++
https://pastebin.com/rGMwW0AL

Michael Miroshnichenko Админ. ответил 2 года назад

Py 2.7

print len([ x for x in range(1001) if «3» in str(x)])

8 ответ
3 +1 -1
Лучший ответ
Andrey Amelchenya Админ. ответил 2 года назад

271. В каждом десятке есть 1 тройка, но в каждой сотне есть дополнительный десяток, который начинается с 3. Значит в каждой сотне 19 таких чисел. Но для 3xx все числа будут подходящие, значит количество таких чисел для тысячи будет 19*9+100 = 271. Аналогично можно вычислять дальше, для 10000: 271*9+1000 = 3439 и т.д.

wegeeks Админ. ответил 2 года назад

Все верно написал!

0 +1 -1
Тельман Админ. ответил 2 года назад

На самом деле чисел будет 188. Объясню почему, в каждой сотне, кроме третьей, есть ровно по 11 чисел с наличием тройки. В третьей сотне все числа имеют тройки. Ответ 11*8+100=188

Тельман Админ. ответил 2 года назад

Пардон, 199, ошибся, нулевую сотню не учел (0-99)

1 +1 -1
MIKS Админ. ответил 2 года назад

Решение на Python3 — https://pastebin.com/k0Pt43MW

bestel Админ. ответил 2 года назад

Мое Ruby-решение: (1..1000).map(&:to_s).count { |i| i.include?(‘3’) }

3 +1 -1
Josef Админ. ответил 2 года назад

Можно решить другим способом — 
всего чисел 1000. А чисел в которых нет цифры «3» их 9*9*9 = 729. Если мы от всего количества чисел отнимем количество чисел, в которых нет цифры «3» то получим сколько чисел с цифрой «3». ОТвет: 1000 — 729 = 271

0 +1 -1
J0hnTV Админ. ответил 2 года назад

 len([i for i in range(1001) if str(3) in str(i)])