Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.76
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
#1

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

17.02.2012, 16:34. Просмотров 2323. Ответов 12
Метки нет (Все метки)

определить количество цифр 5 в записи всех натуральных чисел от 1 до N (N<10^18) включительно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2012, 16:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подсчитать количество цифр 5 в числе (C++):

Подсчитать количество цифр в натуральном числе - C++
Дано натуральное число. длина числа заранее не известна. подсчитать количество цифр в нем. поменять местами первую и последнюю цифру числа....

Цикл: Подсчитать количество цифр A в числе N. - C++
Количество заданных цифр в числе Подсчитать количество цифр a в числе N. я НАПИСАЛ код и не работает!!! WTF??? #include...

Подсчитать количество цифр в заданном натуральном числе. - C++
Подсчитать количество цифр в заданном натуральном числе. (как можно понятнее и проще, если можно)

Рекурсия, подсчитать количество цифр в заданном целом числе - C++
Подсчитать количество цифр в заданном целом числе n

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

Рекурсия: подсчитать количество цифр в заданном натуральном числе - C++
Доброго времени суток. Задание было такое: Тема - Рекурсивные функции пользователя. Подсчитать количество цифр в заданном натуральном...

12
-=ЮрА=-
Заблокирован
Автор FAQ
17.02.2012, 17:11 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
using namespace std;
 
//Îïðåäåëÿåò ñêîëüêî Г°Г*Г§ ÷èñëî val âñòðå÷Г*ГҐГІГ±Гї Гў Г°Г*çðÿäГ*Гµ num
int getCountOfValInNumber(int num, int val)
{
    if(num < 0)
        num *= -1;
    int count = ((num % 10 == val) ? 1 : 0);
    while(0 < (num /= 10))
        count +=((num % 10 == val) ? 1 : 0);
    return count;
}
 
int main()
{
    int num, val;
    while(true)
    {
        if(!(cout<<"Enter number : ") || !(cin>>num))
            cout<<"Input error\n";
        else
        if(!(cout<<"Enter value  : ") || !(cin>>val))
            cout<<"Input error\n";
        else
            cout<<"Number "<<num<<" "
                <<"contain "<<val<<" : "
                <<getCountOfValInNumber(num, val)
                <<" times\n";
        if(cin.bad())
            cin.clear();
    }
    return 0;
}
1
Миниатюры
Подсчитать количество цифр 5 в числе  
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
17.02.2012, 17:13  [ТС] #3
-=ЮрА=-, спасибо, но уже решил, вот что вышло
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
using namespace std;
__int64 min (__int64 x, __int64 y){
        if (x<y) return x;
        else return y;
        }
main(){
       __int64 p=1,n,s=0;
       cin >> n;          
              while( p<n){         
              p*=10;
              s+=(n/p)*p/10;   
              if(n%p>=p/2)
                          s+=min(n%p-p/2+1,p/10);
    }
    cout << s;
    return 0; 
       }
0
-=ЮрА=-
Заблокирован
Автор FAQ
17.02.2012, 17:25 #4
Цитата Сообщение от Новенький Посмотреть сообщение
определить количество цифр 5 в записи всех натуральных чисел от 1 до N (N<10^18) включительно.
- вчитавшись могу предложить
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <cmath>
using namespace std;
 
//Îïðåäåëÿåò ñêîëüêî Г°Г*Г§ ÷èñëî val âñòðå÷Г*ГҐГІГ±Гї Гў Г°Г*çðÿäГ*Гµ num
unsigned long getCountOfValInNumber(unsigned long num, unsigned long val)
{
    unsigned long count = ((num % 10 == val) ? 1 : 0);
    while(0 < (num /= 10))
        count +=((num % 10 == val) ? 1 : 0);
    return count;
}
 
int main()
{
    unsigned long  num, val;
    unsigned long  count;
    while(true)
    {
        count = 0;
        if(!(cout<<"Enter value  : ") || !(cin>>val))
            cout<<"Input error\n";
        else
        for(num = 1; num < 1000; num++)
            count += getCountOfValInNumber(num, val);
        if(cin.bad())
            cin.clear();
        else
            cout<<"There are "<<count*pow(10,15.0)
                <<" digits "<<val<<" in diapazone 1..10^18\n";
    }
    return 0;
}
0
Миниатюры
Подсчитать количество цифр 5 в числе  
golatin
269 / 226 / 44
Регистрация: 12.10.2011
Сообщений: 345
Завершенные тесты: 1
17.02.2012, 17:26 #5
Для http://www.cyberforum.ru/cgi-bin/latex.cgi?N={10}^{18}:

http://www.cyberforum.ru/cgi-bin/latex.cgi?{10}^{18}-{9}^{18}=849905364703000879
0
augur
5 / 5 / 1
Регистрация: 11.02.2012
Сообщений: 11
18.02.2012, 00:27 #6
для сотни
................... / группа q 11 пятёрок \
5 15 25 35 45 | 50 51 52 53 54 55 56 57 58 59 | 65 75 85 95
\ группа p 9 пятёрок................................................. /

для тысячи группа q ,будет содержать 120 пятёрок, p - 180

p(n)= 9*n * 10^(n-1)
q(n)= q(n-1)*10+10^(n-1)


код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <conio.h>
#include <math.h>
#include <iomanip>
using namespace std;
 
int main()
{
    double p;
    double q =11;
    double n = 2;
    double deg =18;
    
    p=9*(deg-1)* pow(10,deg-2);
    
    while (n<deg)
    {
        q=q*10+pow(10,n-1);
        ++n;
    }
 
     cout<<setiosflags(ios::fixed)<<p<<" "<<q<<" "<<p+q;
    getch();
    return 0;
1
-=ЮрА=-
Заблокирован
Автор FAQ
18.02.2012, 01:02 #7
Цитата Сообщение от augur Посмотреть сообщение
для сотни
................... / группа q 11 пятёрок \
5 15 25 35 45 | 50 51 52 53 54 55 56 57 58 59 | 65 75 85 95
\ группа p 9 пятёрок................................................. /
а также к этому добру приплюсовать 100 пятёрок от 5ста + 1000-чу пятёрок от 5000 и т.д...
0
augur
5 / 5 / 1
Регистрация: 11.02.2012
Сообщений: 11
18.02.2012, 01:36 #8
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
а также к этому добру приплюсовать 100 пятёрок от 5ста + 1000-чу пятёрок от 5000 и т.д...
да нет, всё линейно кроме q там 18 циклов ,правда всё это для чисел 10 в n степени.

Добавлено через 5 минут
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
а также к этому добру приплюсовать 100 пятёрок от 5ста + 1000-чу пятёрок от 5000 и т.д.
от 500 до 600 -120 пятёрок
от 5000 до 6000 - 1300 пятёрок
от 50000 до 60000 - 14000 пятёрок и т.д.
0
easybudda
Модератор
Эксперт CЭксперт С++
9723 / 5674 / 972
Регистрация: 25.07.2009
Сообщений: 10,920
18.02.2012, 02:51 #9
Я может быть чего-то не понимаю, но по-моему сколько в числе десятков, столько в нём и пятёрок, плюс ещё одна, если остаток от целочисленного деления числа на него же, обрезанное до десятков, больше или равен пяти...
0
-=ЮрА=-
18.02.2012, 03:18
  #10

Не по теме:

Цитата Сообщение от easybudda Посмотреть сообщение
Я может быть чего-то не понимаю, но по-моему сколько в числе десятков, столько в нём и пятёрок, плюс ещё одна, если остаток от целочисленного деления числа на него же, обрезанное до десятков, больше или равен пяти...
- это если до сотни считать (и то
5,15,25,35...95 - 10 штук, а в 500 добавится сразу 100...

0
easybudda
Модератор
Эксперт CЭксперт С++
9723 / 5674 / 972
Регистрация: 25.07.2009
Сообщений: 10,920
18.02.2012, 03:25 #11
Ну да, погорячился, их чуть больше...
0
-=ЮрА=-
18.02.2012, 03:35
  #12

Не по теме:

Вообще это задача по математике, верней на знание формулы, сам алгоритм лажовый, возможно ТС формулу подскажет(м.б. им её давали)

0
augur
5 / 5 / 1
Регистрация: 11.02.2012
Сообщений: 11
18.02.2012, 12:48 #13
здесь элементарные рекуррентные соотношения

для 10^n при n>=2 формула такова

N(кол-во чисел) = 9*(n-1)*10^(n-2)+(11+n-2)*10^(n-2) = 10n * 10^(n-2)
0
18.02.2012, 12:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2012, 12:48
Привет! Вот еще темы с ответами:

Подсчитать количество цифр в числе, которое находится по формуле - C++
Необходимо подсчитать количество цифр в числе,которое находится по формуле,всё есть в задачи,необходимо только реализовать подсчёт...

Подсчитать количество четных и нечетных цифр в числе в процентном отношении - C++
Ввести с клавиатуры число в диапазоне от 100 до 100 000 000 (введеноe число проверяется). Подсчитать количество четных и нечетных цифр в...

Подсчитать количество четных и нечетных цифр во введенном числе в процентном отношении (do while) - C++
Здравствуйте, помогите пожалуйста написать две программы. Остальные сделал а эти никак не могу :( 1) Ввести с клавиатуры число в...

Подсчитать количество цифр k в заданном натуральном числе, где k – случайная цифра - C++
Дано натуральное число n. Подсчитать количество цифр k в числе, где k – случайное число.(л3,з2)


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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