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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.76
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
17.02.2012, 16:34     Подсчитать количество цифр 5 в числе #1
определить количество цифр 5 в записи всех натуральных чисел от 1 до N (N<10^18) включительно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2012, 16:34     Подсчитать количество цифр 5 в числе
Посмотрите здесь:

C++ С++. Подсчитать количество цифр в натуральном числе.
C++ Подсчитать количество цифр в заданном натуральном числе.
Цикл: Подсчитать количество цифр A в числе N. C++
Подсчитать количество цифр после запятой в вещественном числе C++
C++ Подсчитать количество четных и нечетных цифр во введенном числе в процентном отношении (do while)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
17.02.2012, 17:11     Подсчитать количество цифр 5 в числе #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;
}
Миниатюры
Подсчитать количество цифр 5 в числе  
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
17.02.2012, 17:13  [ТС]     Подсчитать количество цифр 5 в числе #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; 
       }
-=ЮрА=-
Заблокирован
Автор FAQ
17.02.2012, 17:25     Подсчитать количество цифр 5 в числе #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;
}
Миниатюры
Подсчитать количество цифр 5 в числе  
golatin
259 / 216 / 38
Регистрация: 12.10.2011
Сообщений: 311
Завершенные тесты: 1
17.02.2012, 17:26     Подсчитать количество цифр 5 в числе #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
augur
5 / 5 / 1
Регистрация: 11.02.2012
Сообщений: 11
18.02.2012, 00:27     Подсчитать количество цифр 5 в числе #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;
-=ЮрА=-
Заблокирован
Автор FAQ
18.02.2012, 01:02     Подсчитать количество цифр 5 в числе #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 и т.д...
augur
5 / 5 / 1
Регистрация: 11.02.2012
Сообщений: 11
18.02.2012, 01:36     Подсчитать количество цифр 5 в числе #8
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
а также к этому добру приплюсовать 100 пятёрок от 5ста + 1000-чу пятёрок от 5000 и т.д...
да нет, всё линейно кроме q там 18 циклов ,правда всё это для чисел 10 в n степени.

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

Не по теме:

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

easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
18.02.2012, 03:25     Подсчитать количество цифр 5 в числе #11
Ну да, погорячился, их чуть больше...
-=ЮрА=-
18.02.2012, 03:35
  #12

Не по теме:

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2012, 12:48     Подсчитать количество цифр 5 в числе
Еще ссылки по теме:

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

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

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

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

N(кол-во чисел) = 9*(n-1)*10^(n-2)+(11+n-2)*10^(n-2) = 10n * 10^(n-2)
Yandex
Объявления
18.02.2012, 12:48     Подсчитать количество цифр 5 в числе
Ответ Создать тему
Опции темы

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