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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.81
Stryagina
1 / 1 / 0
Регистрация: 14.09.2009
Сообщений: 9
#1

Как посчитать количество повторений каждой из цифр в числе N*N? - C++

14.09.2009, 20:59. Просмотров 2595. Ответов 17
Метки нет (Все метки)

я очень плохо ориентируюсь на С++.Такой вопрос:можно числа переводить в строки?И если нет,то как осуществить решение задачи?Помогите, пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2009, 20:59     Как посчитать количество повторений каждой из цифр в числе N*N?
Посмотрите здесь:

Определить количество повторений каждой из цифр в числе - C++
1)Фишка может двигатся по полю длины N только вперёд.Длина хода фишки не более K. Найти число различных путей, по которым фишка может...

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

Посчитать количество 7-ок (цифр 7) в введенном числе - C++
4.Посчитать количество 7-ок (цифр 7) в введенном числе.

нужно посчитать количество цифр 4 и 9 в данном числе - C++
например, чтобы при вводе числа 14599 программа выдавала 3 помогите пожалуйста

Определить количество цифр в числе и посчитать их сумму - C++
пользователь вводит число, опредилить количество цифр в числе, посчитать их сумму написал следующий код: #include <iostream> using...

Посчитать количество четных цифр в трехзначном числе (линейно) - C++
трехзначное число, посчитать кол-во четных чисел в нем! Линейно пример циклично: #include<stdio.h> int main() { int x, b; ...

Определить количество каждой из цифр 0,1,2...9 в числе N^N. - C++
Пожалуйста, помогите разобраться с задачей. Определить количество каждой из цифр 0,1,2...9 в числе N^N.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
14.09.2009, 21:33     Как посчитать количество повторений каждой из цифр в числе N*N? #2
Цитата Сообщение от Stryagina Посмотреть сообщение
Такой вопрос:можно числа переводить в строки?
да
Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
14.09.2009, 21:35     Как посчитать количество повторений каждой из цифр в числе N*N? #3
примерно так.
C++
1
2
3
4
5
6
7
char symbol='4';
char c[16];
int val=14457483;
_itoa_s(val,c,10);
std::string s=c;
int count=0;
for(int i=0;i<(int)s.size();i++)if(s[i]==symbol){count++;};
count - кол-ва повторений.
val - число.
symbol - цифра.

зы: инклудать <string>
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,412
14.09.2009, 21:38     Как посчитать количество повторений каждой из цифр в числе N*N? #4
Автор, от тебя много не требуется.
Ну, ты хотя бы вопрос сформулируй правильно, чтобы на твоей просьбе не спотыкались люди и за тебя не додумывали- что за числа, десятичные, шестнадцатиричные, дробные, опять же пояснил бы, что такое N*N...
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
14.09.2009, 21:44     Как посчитать количество повторений каждой из цифр в числе N*N? #5
Вот решение
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
#include <iostream>
int main()
{
    setlocale(LC_ALL, "Russian");
    int N, i;
    std::cout<<"Введите число:\n> ", std::cin>>N;
 
    std::cout<<"Квадрат числа "<<N<<" равен: ";
    N *= N;
    std::cout<<N;
    int mas[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
    while(N > 0)
    {
        mas[N%10]++;
        N /= 10;
    }
 
    std::cout<<"\n\nКоличество повторений каждого из символов:\n";
    for(i = 0; i < 10; ++i)
        if(mas[i])
            std::cout<<"Количество повторений цифры "<<i<<" равно "<<mas[i]<<'\n';
 
    std::cout<<std::endl;
    system("pause");
    return 0;
}


Adler, алгоритм не универсальный для типа int, да и не оптимален
Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
14.09.2009, 22:03     Как посчитать количество повторений каждой из цифр в числе N*N? #6
Цитата Сообщение от M128K145 Посмотреть сообщение
алгоритм не универсальный
зато коротко и непонятно.
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
14.09.2009, 22:12     Как посчитать количество повторений каждой из цифр в числе N*N? #7
C++
1
2
3
4
5
6
7
8
int mas[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; //Создаем массив на 10 элементов
//(сколько и цифр от 0 до 9) и обнуляем его
while(N > 0) // пока наше число больше 0, т.е. дву- и более значное
{
        mas[N%10]++; // элемент массива с индексом равным остатку от деления
        // нашего числа на 10 (т.е. получаем последнюю цифру) увеличиваем на 1
        N /= 10;// уменьшаем наше N в 10 раз(отбрасываем последнюю цифру)
}
Мне кажется все предельно ясно, просто, и максимально линейно. Быстрее - теоретически невозможно!
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
14.09.2009, 22:37     Как посчитать количество повторений каждой из цифр в числе N*N? #8
2M128K145: Берем например N == 0.
По твоему коду будет что цифр у этого числа нет вообще
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
14.09.2009, 22:59     Как посчитать количество повторений каждой из цифр в числе N*N? #9
C++
1
2
3
4
5
6
7
    while(N > 0)
    {
        mas[N%10]++;
        N /= 10;
    }
    if(!N)
        mas[0] = 1;
Вот так. Люди, берите пример с odip'a - человек не верит словам, а просматривает код. И таки находит ошибки! Спасибо! Вроде исправил)
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
14.09.2009, 23:02     Как посчитать количество повторений каждой из цифр в числе N*N? #10
Можно так:
C
1
2
3
4
5
for ( ; ; ) {
    mas[N%10]++;
    N/= 10;
    if ( N == 0 ) { break; }
}
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
15.09.2009, 08:02     Как посчитать количество повторений каждой из цифр в числе N*N? #11
Или так
C++
1
2
3
4
5
    do
    {
        mas[N%10]++;
        N /= 10;
    }while(N > 0);
Stryagina
1 / 1 / 0
Регистрация: 14.09.2009
Сообщений: 9
15.09.2009, 19:02  [ТС]     Как посчитать количество повторений каждой из цифр в числе N*N? #12
спасибо за советы!!!!только вот еще вопрос...

Добавлено через 2 минуты
Цитата Сообщение от M128K145 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
int mas[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; //Создаем массив на 10 элементов
//(сколько и цифр от 0 до 9) и обнуляем его
while(N > 0) // пока наше число больше 0, т.е. дву- и более значное
{
        mas[N%10]++; // элемент массива с индексом равным остатку от деления
        // нашего числа на 10 (т.е. получаем последнюю цифру) увеличиваем на 1
        N /= 10;// уменьшаем наше N в 10 раз(отбрасываем последнюю цифру)
}
Мне кажется все предельно ясно, просто, и максимально линейно. Быстрее - теоретически невозможно!
а куда результат записывается...в массив?т.е. как вывести результат сколько же повторений?
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
15.09.2009, 19:07     Как посчитать количество повторений каждой из цифр в числе N*N? #13
Stryagina, в массив. Вот вывод
C++
1
2
3
4
std::cout<<"\n\nКоличество повторений каждого из символов:\n";
for(i = 0; i < 10; ++i)
       if(mas[i])
              std::cout<<"Количество повторений цифры "<<i<<" равно "<<mas[i]<<'\n';
только обрати внимание на замечания к этому коду написанные в 8 посте и воспользуйся одним из способов устранения этой ошибки, приведенных в 9 - 11 постах. Что бы не много менять в коде используй код из 11 поста, а так на твое усмотрение любой из способов, они идентичны
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
15.09.2009, 19:07     Как посчитать количество повторений каждой из цифр в числе N*N? #14
Результат записывается в массив.
Вывести - например в цикле от 0 до 9.
Stryagina
1 / 1 / 0
Регистрация: 14.09.2009
Сообщений: 9
15.09.2009, 19:11  [ТС]     Как посчитать количество повторений каждой из цифр в числе N*N? #15
огромное спасибо!!!!!попробую как-нибудь все это довести до целостной программы....только тут вот другая проблема появилась....с++ вообще не работает((((окошко выходит,а там ничего нет....(((((
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
15.09.2009, 19:23     Как посчитать количество повторений каждой из цифр в числе N*N? #16
вот целостная программа
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
#include <iostream>
int main()
{
        setlocale(LC_ALL, "Russian");
        int N, i;
        std::cout<<"Введите число:\n> ", std::cin>>N;
 
        std::cout<<"Квадрат числа "<<N<<" равен: ";
        N *= N;
        std::cout<<N;
        int mas[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
        do
        {
                mas[N%10]++;
                N /= 10;
        }while(N > 0);
 
        std::cout<<"\n\nКоличество повторений каждого из символов:\n";
        for(i = 0; i < 10; ++i)
                if(mas[i])
                        std::cout<<"Количество повторений цифры "<<i<<" равно "<<mas[i]<<'\n';
 
        std::cout<<std::endl;
        system("pause");
        return 0;
}
Stryagina
1 / 1 / 0
Регистрация: 14.09.2009
Сообщений: 9
15.09.2009, 20:16  [ТС]     Как посчитать количество повторений каждой из цифр в числе N*N? #17
спасибо!!!!!вы очень хорошие люди!!!!!

Добавлено через 41 минуту
еще раз большое спасибо!!!!у меня все,слава Богу,заработало)))))))))но как мне еще в этой программе добавить условие,что N<=1000
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2009, 20:52     Как посчитать количество повторений каждой из цифр в числе N*N?
Еще ссылки по теме:

Как посчитать количество повторений действия? - C++
Как можно посчитать количество повторяемых действий. Задача такая, что если число чётное то выполняется одно действие, если нечётное, то...

Как вычислить количество цифр в числе? - C++
Как вычислить количество цифр в числе с помощью логарифмов?

Определить количество повторений в числе заданной цифры - C++
Дано натуральное число N. Определить кол-во повторений в числе заданной цифры.

Как найти количество цифр в десятичном числе? - C++
Весь вопрос в названии темы:(

Посчитать количество повторений каждого элемента заданного массива - C++
Вот у меня есть массив. Вводим элементы, например: 1, 1, 2, 3, 3 И мне нужно посчитать количество повторений каждого элемента, то...


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

Или воспользуйтесь поиском по форуму:
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
15.09.2009, 20:52     Как посчитать количество повторений каждой из цифр в числе N*N? #18
два варианта:
При N > 1000 повторный ввод
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
#include <iostream>
int main()
{
    setlocale(LC_ALL, "Russian");
    int N, i;
inp:
    std::cout<<"Введите число:\n> ", std::cin>>N;
    if(N > 1000)
    {
        std::cout<<"Число должно быть положительным и меньше тысячи.\n";
        goto inp;
    }
    std::cout<<"Квадрат числа "<<N<<" равен: ";
    N *= N;
    std::cout<<N;
    int mas[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
    do
    {
        mas[N%10]++;
        N /= 10;
    }while(N > 0);
 
    std::cout<<"\n\nКоличество повторений каждого из символов:\n";
    for(i = 0; i < 10; ++i)
        if(mas[i])
            std::cout<<"Количество повторений цифры "<<i<<" равно "<<mas[i]<<'\n';
 
    std::cout<<std::endl;
    system("pause");
    return 0;
}

При N > 1000 выход из программы
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
#include <iostream>
int main()
{
    setlocale(LC_ALL, "Russian");
    int N, i;
    std::cout<<"Введите число:\n> ", std::cin>>N;
    if(N > 1000)
    {
        system("pause");
        return 0;
    }
    std::cout<<"Квадрат числа "<<N<<" равен: ";
    N *= N;
    std::cout<<N;
    int mas[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
    do
    {
        mas[N%10]++;
        N /= 10;
    }while(N > 0);
 
    std::cout<<"\n\nКоличество повторений каждого из символов:\n";
    for(i = 0; i < 10; ++i)
        if(mas[i])
            std::cout<<"Количество повторений цифры "<<i<<" равно "<<mas[i]<<'\n';
 
    std::cout<<std::endl;
    system("pause");
    return 0;
}
Yandex
Объявления
15.09.2009, 20:52     Как посчитать количество повторений каждой из цифр в числе N*N?
Ответ Создать тему
Опции темы

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