Регистрация
21 Июл 2013
Сообщения
89
Репутация
0
Спасибо
0
Монет
0
Как определить сколько раз цифра встречается в числе? Допустим число 6376. Как сделать, что бы программа выводила информацию о том, что цифра 6 встречается 2 раза в числе?
 
Перевести все число в строку и подсчитать. Но так как перевод в строку числа делает те же операции деления и взятия по модулю, то видно получить цифру последнюю, а она x % 10 даст последнюю цифру потом x = x/10 даст число без последней цифры и повторяем заново пока есть, что считывать, то бишь пока x не ноль
 
// на входе в a число map < int, int > cnt; for(;a;a/=10)cnt[a%10]++; // на выходе в cnt - количество цифр cout<<cnt[6]; // например cnt[6] = количеству шестерок
 
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; }
 
Назад
Сверху