Основы программирования на С++ для начинающих

Задача: подсчёт цифр

Вводится целое число. Подсчитайте программно сколько раз в его десятичную запись входит некоторая цифра, скажем 3. Вот и всё условие. Например: 123 -> 1; 54321345 -> 2; 3333 -> 4 и т.д.

Задача очень простая … на уровне средней школы. Но для того, чтобы задачу сделать не совсем уж тривиальной – усложним:
– предложите несколько (как можно больше) разных способов реализации;
– для каждой реализации сократите запись кода так, чтобы он был, как можно более кратким.

Решения (из-за простоты задачи есть где развернуться, решений может быть очень много, дополняйте своими):

Здесь всё решение укладывается в один оператор do … while. Но, обратим внимание на то, что “вводится целое число” – это ввод всегда строки, представляющей число (здесь подвох в формулировке задачи). Тогда:

Или так:

Или даже так:

И вот как это выглядит:

P.S. Эта задача является хорошей иллюстрацией того основополагающего принципа программирования, что любая поставленная задача может быть решена многими и очень разными способами.

6 thoughts on “Задача: подсчёт цифр

  1. я решил вот так

  2. Пожалуйста, кто-нибудь может человеческим языком объяснить, зачем в решении использовать “unsigned”? Я искал информацию в гугле, но мой мозг оказался не готов к наплыву слишком страшных слов.

    1. потому что возможно тестирующая система набирает много цифр. Поэтому для таких цифр длиною как 10 стпенью 16 или больше используется ключевое слово ‘unsigned’.

  3. #include
    using namespace std;
    int main() {
    unsigned long long int a, c;
    int k=0;
    cin>>a;
    while(a>0) {
    c=a%10;
    a/=10;
    if(c==3) k++;
    }
    cout<<k;
    return 0;
    }

Добавить комментарий для Maj Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *