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

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

Войти
Регистрация
Восстановить пароль
 
Farruh Turgunov
0 / 0 / 0
Регистрация: 10.03.2013
Сообщений: 5
#1

Пятерки - C++

17.03.2013, 08:31. Просмотров 718. Ответов 3
Метки нет (Все метки)

Задано натуральное 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
17.03.2013, 08:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Пятерки (C++):

Найти все пятерки натуральных чисел - C++
Задача: Дано натуральное число n (n&gt;5). Найти все пятерки натуральных чисел x1,x2,x3,x4,x5 такие что x1&gt;=x2&gt;=x3&gt;=x4&gt;=x5 u x1+x2+x3+x4+x5 =...

Найти количество чисел a1(i=1,2,....,n), являющихся степенями пятерки - C++
Даны натуральное число n и целые числа а1,а2..,аn.Найти количество чисел a1(i=1,2,....,n),я вляющихся степенями пятерки.(Определить...

Определить функцию, позволяющую распознаёт степени пятерки - C++
Даны натурального число n и целые числа A1,A2,A3...An. Найти количество чисел Ai(i=1,2,3,...,n), являющихся степенями пятерки.( Определить...

Найти количество чисел последовательности, которые являются степенями пятерки - C++
Даны натурального число n и целые числа A1,A2,A3...An. Найти количество чисел Ai(i=1,2,3,...,n), являющихся степенями пятерки.( Определить...

Получить все пятерки натуральных чисел удовлетворяющих заданному условию - C++
Ввести с клавиатуры натуральное число n(n&gt;=5). Получить все пятерки натуральных чисел x1,x2,x3,x4,x5 такие, что x1&gt;=x2&gt;=x3&gt;=x4&gt;=x5 и...

Массив целых чисел. Рассмотреть отрезки последовательности, состоящие из степеней пятерки - C++
Добрый день, у меня вот есть код на паскале, нужно перевести на с++. Не очень понятно, что там в функции выходит, и какие параметры мы...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Кот Ангенс
317 / 267 / 38
Регистрация: 24.05.2012
Сообщений: 629
17.03.2013, 10:01 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <fstream>
 
using namespace std;
 
int main() {
    long long n;
    fstream f("INPUT.TXT", ios::in);
    (f >> n).close();
    long long result = 0, t, p = 1;
    do {
        p = (p << 1) + (p << 2);
        result += (t = n / p);
    } while (t);
    f.open("OUTPUT.TXT", ios::out);
    (f << result).close();
}
Farruh Turgunov
0 / 0 / 0
Регистрация: 10.03.2013
Сообщений: 5
17.03.2013, 19:44  [ТС] #3
your solution is wrong

Добавлено через 5 минут
you cant understand this question

you should find digit of 5 in 1 to N

for ex: 120

5 15 25 35 45 => 5
50 51 52 53 54 55 56 57 58 59 => 11
65 75 85 95 105 115 => 6
so answer is 5 + 11 + 6 => 22

Добавлено через 3 часа 12 минут
My code will time limit exceeded

what should i do
this is my code
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
using namespace std;
int main()
{
  int i,n,k,s=0;
  cin >> n;
  for(i=5;i<=n;i++)
  {
  k=i;
  while(k>0){
             if(k%10==5)s++;
             k/=10;
             }
  }
  cout << s << endl; 
system("pause");
return 0;
}
 Комментарий модератора 
Пишите по-русски.
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
18.03.2013, 00:19 #4
Цитата Сообщение от Farruh Turgunov Посмотреть сообщение
My code will time limit exceeded
ну а что же Вы хотели, запуская цикл:
Цитата Сообщение от Farruh Turgunov Посмотреть сообщение
C++
1
for(i=5;i<=n;i++)
, где n может быть равной 10^18. Кстати это значение в переменную типа int не поместится.
Подумайте лучше над таким способом решения задачи, например для числа 120.
Пятерка на первом месте (на месте единиц) появится 12 раз, или 120/10. Но если бы было 120%10 больше 4, то было бы еще +1.
Пятерка на втором месте (на месте десятков) появится 10 раз, или 120/100*10. Но если бы было (120/10)%10 больше 5, то + 10. И если (120/10)%10==5, то + 120%10+1.
Пятерка на третьем месте появится 0 раз. Но если бы было 120/100 больше 5, то + 100. И если 120/100==5, то 120%100 +1.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2013, 00:19
Привет! Вот еще темы с ответами:

Дано число. Выбросить из него все единицы и пятерки, оставив порядок цифр - C++
Дано число. Выбросить из него все единицы и пятерки, оставив порядок цифр.Помогите пожалуйста

Дано натуральное k. Определить k-ю цифру последовательности, в которой выписаны подряд степени пятерки - C++
Дано натуральное k. Определить k-ю цифру последовательности: 1525125625..., в которой выписаны подряд степени 5. #include &lt;stdio.h&gt; ...

Дано натуральное число,заменить в нем все <единицы> на <пятерки>. Вводимые числа в промежутке [10;9999] - C++
Дано натуральное число,заменить в нем все &lt;единицы&gt; на &lt;пятерки&gt;. Вводимые числа в промежутке Добавлено через 15 минут помогите...

Вычислить сумму элементов массива, которые являются степенями пятерки и индексы которых есть нечетные числа. - C++
Вычислить сумму элементов массива, которые являются степенями пятерки и индексы которых есть нечетные числа. помогите написать...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.03.2013, 00:19
Ответ Создать тему
Опции темы

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