Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
#1

Подсчитывать количество цифр 2 - C++

06.01.2013, 20:24. Просмотров 1157. Ответов 20
Метки нет (Все метки)

Всем привет, вот нашёл задачку:
Напишите метод который будет подсчитывать количество цифр 2, используемых в записи чилес от 0 до n включительно.
Впринципе она кажется лёгкой, я сделал её стандартным методом (разбор числа на цифры, и проверка есть ли в нём 2), когда я задаю n = 1000000, то программа выполняется довольно быстро, но если n = к примеру 1000000000, то естественно, ждать приходидся не мало. Может кто-то может сделать эту задачу более быстрым способом? Зарание спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2013, 20:24     Подсчитывать количество цифр 2
Посмотрите здесь:

Сумма цифр и количество цифр C++
C++ Написать программу, которая будет подсчитывать количество гласных букв в строке, введенной с клавиатуры.
количество цифр C++
C++ В последовательности символов подсчитать количество букв и количество цифр
Вывести слово, содержащее наибольшее количество цифр и вывести число цифр в слове C++
C++ подсчитать количество цифр
C++ Подсчитать количество "счастливых" шестизначных автобусных билетов(сумма первых трех цифр равна сумме трех последних цифр)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2013, 18:12     Подсчитывать количество цифр 2
Еще ссылки по теме:

Количество цифр в последовательности C++
Количество цифр в строке C++
C++ Создать файл, ввести символы, вывести на экран количество не латинских букв, количество цифр
Операции с текстом (длина, количество цифр, количество букв) C++
Подсчитать количество цифр C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
07.01.2013, 18:12     Подсчитывать количество цифр 2 #21
Цитата Сообщение от ValeryS Посмотреть сообщение
не смог угадать формулу по твоим исходникам, подскажи
Одну формулу вы уже угадали
Цитата Сообщение от ValeryS Посмотреть сообщение
количество двоек равно количеству разрядов умноженное на 10 в степени количество разрядов-1
Далее пробегаемся по цифрам исходного числа.
Если цифра меньше двух, то ответ для нее равен [цифра * количество двоек в записи всех n-значных чисел], где n = разряд цифры - 1. Для остальных цифр нужно сделать также, но у них будут дополнительные условия. Это соответствует
C++
1
z * count
в моем исходнике.
z - текущая цифра, count - количество двоек в n-значных числах.

Если цифра больше двойки, то нужно прибавить к ответу количество всех n-значных чисел.
C++
1
(z > 2) * cur

И если цифра равна двойке, то нужно просто прибавить к ответу число, все разряды которого младше рассматриваемой цифры, увеличенное на единицу.
C++
1
(z == 2) * (1 + n % cur)
Ответы для каждой цифры нужно просуммировать.

Итого: никакого перебора, просто один цикл по цифрам числа.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yandex
Объявления
07.01.2013, 18:12     Подсчитывать количество цифр 2
Ответ Создать тему
Опции темы

Текущее время: 20:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru