Другие языки программирования и технологии

Программирование в C++

Как определить сколько раз цифра встречается в числе? Допустим число 6376. Как сделать, что бы программа выводила информацию о том, что цифра 6 встречается 2 раза в числе?
Frank Shmidt
Frank Shmidt
199
Перевести все число в строку и подсчитать.
Но так как перевод в строку числа делает те же операции деления и взятия по модулю, то видно получить цифру последнюю, а она
x % 10 даст последнюю цифру
потом x = x/10 даст число без последней цифры
и повторяем заново пока есть, что считывать, то бишь пока x не ноль
Иван Коломиец
Иван Коломиец
52 782
Лучший ответ
%10 в цикле
// на входе в a число
map < int, int > cnt;
for(;a;a/=10)cnt[a%10]++;
// на выходе в cnt - количество цифр
cout<<cnt[6]; // например cnt[6] = количеству шестерок
#include <iostream>
#include <windows.h>
#include <string>
#include <map>
#include <algorithm>

using namespace std;

int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
system("color 0A");

map<char, size_t> digits;
for (size_t u = 0u; u <= 9u; ++u)
{
digits.insert(make_pair('0' + u, 0u));
}

cout << "Введите целое число любой длины" << endl;
string s;
getline(cin, s);
for (const auto &c : s)
{
++digits[c];
}

cout << "Сотав числа" << endl;
for (const auto &p : digits)
{
if (p.second)
{
cout << "Цифра " << p.first
<< " в этом числе встречается " << p.second
<< " раз" << endl;
}
}

system("pause");
return 0;
}
MD
Mr. Dubstep
8 552
Денис Фоминых не подскажешь где вот эти все библиотеки изучить?
#include
#include
#include
#include

а то я дальше iostream не пишу ничего)
Денис Фоминых windows.h
string
map
algoritm
int main()
{
setlocale(LC_ALL, "RUS");
int number, numiral_x, numiral_1, numiral_2, numiral_3, numiral_4, summ = 0;
cout << "Введите 4х значное число: ";
cin >> number;
numiral_1 = number % 10;
numiral_2 = (number / 10) % 10;
numiral_3 = (number / 100) % 10;
numiral_4 = (number / 1000) % 10;
cout << "Введите цифру, чтобы определить сколько раз она встречается в числе: ";
cin >> numiral_x;
if (numiral_4 == numiral_x)
{
summ += 1;
}
if (numiral_3 == numiral_x)
{
summ += 1;
}
if (numiral_2 == numiral_x)
{
summ += 1;
}
if (numiral_1 == numiral_x)
{
summ += 1;
}
cout << "Ответ: " << summ;

}
ИS
Иван Sifrady
5 543
Mr. Dubstep Если в числе цифр менее или более 4 и на момент компиляции длина числа неизвестна.