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

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

Войти
Регистрация
Восстановить пароль
 
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
#1

Задача "Пятерки" - C++

19.12.2011, 23:08. Просмотров 646. Ответов 5
Метки нет (Все метки)

Вот
условие
Пятерки
(Время: 1 сек. Память: 16 Мб)

Задано натуральное N. Требуется написать программу, которая определит количество цифр 5 в записи всех натуральных чисел от 1 до N включительно.
Входные данные

Во входном файле INPUT.TXT в единственной строке задается число N <= 10^18.
Выходные данные

В выходной файл OUTPUT.TXT записывается найденное число – количество пятерок.
Примеры № INPUT.TXT OUTPUT.TXT
1 27 3
2 120 22
задачи
Тут оригинальное условие.

Как ее решать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2011, 23:08     Задача "Пятерки"
Посмотрите здесь:

Структуры... Задача: "База сотрудников небольшой фирмы" C++
Задача из книги "Програмирование - принципы и практика использования C++" C++
C++ Найти ошибку в решении "Числа - палиндрома" (задача с acmp)
Перевод из двоичной системы в десятичную, задача 2.30 "Как программировать на С++" C++
C++ Вычислить значение суммы. Задача с использованием "длинной арифметики".
Задача "Кто старше?" (подскажите где ошибка в коде) C++
Задача "Гигабашня": минимальное расстояние до этажа со счастливым номером C++
Задача "Движение по клеткам таблицы" (Динамическое программирование) C++
C++ Задача решена только нужна "нитра" фишки по ускорению
C++ Задача про вектор для игры "Быки и коровы"
Страуструп, "Принципы и практика использования С++": задача на нахождение моды C++
C++ Задача на нахождение "+" и "-" элементов в массиве

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
neske
1455 / 822 / 68
Регистрация: 26.03.2010
Сообщений: 2,809
19.12.2011, 23:19     Задача "Пятерки" #2
я пришел к тому, что d[i] = 18 * d[i - 1] + 1, где i + 1 - разрядность числа, d[i] - кол - во 5.
d[0] = 1
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
19.12.2011, 23:20  [ТС]     Задача "Пятерки" #3
огромное спасибо, но как Вы к этому пришли (хотя бы намек)?
neske
1455 / 822 / 68
Регистрация: 26.03.2010
Сообщений: 2,809
19.12.2011, 23:27     Задача "Пятерки" #4
пока пытался объяснить, нашел ошибку, прошу прощения)
Dani
19.12.2011, 23:29  [ТС]
  #5

Не по теме:

Цитата Сообщение от neske Посмотреть сообщение
пока пытался объяснить, нашел ошибку, прошу прощения)
с кем не бывает

valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4661 / 2487 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.12.2011, 02:06     Задача "Пятерки" #6
Алгоритм решения:
1. Считываем значение N
2. Объявляем переменные:
__int64 tmp, res=0, tmp_10=1;
3. Запускаем цикл:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
while(true)
{
     tmp=N;
     tmp/=temp_10;
     res+=(tmp/10)*temp_10;
     if(tmp%10>5)
         res+=temp_10;
     if(tmp%10==5)
         res+=N%temp_10+1;
     if(N/temp_10<10)
         break;
     else
         temp_10*=10;
}
4. Выводим значение res.
Yandex
Объявления
20.12.2011, 02:06     Задача "Пятерки"
Ответ Создать тему
Опции темы

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