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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
06.01.2013, 20:24     Подсчитывать количество цифр 2 #1
Всем привет, вот нашёл задачку:
Напишите метод который будет подсчитывать количество цифр 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++ Дана последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и сумму этих цифр. Вывести на экран каждое число, количес
C++ Определить количество цифр в числе n и сумму всех его цифр
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2013, 18:12     Подсчитывать количество цифр 2
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
diagon
Higher
 Аватар для diagon
1920 / 1186 / 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
Ответ Создать тему
Опции темы

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