Основи програмування на С ++ для початківців

Задача: підрахунок цифр

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

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

рішення (через простоту завдання є де розвернутися, рішень може бути дуже багато, доповнюйте своїми):

Тут все рішення укладається в один оператор do … while. Але, звернемо увагу на те, що “вводиться ціле число” – це введення завжди рядка, представляє число (тут підступ в формулюванні завдання). Тогда:

Или так:

Або навіть так:

І ось як це виглядає:

P.S. Це завдання є хорошою ілюстрацією того основоположного принципу програмування, що будь-яка поставлена ​​задача може бути вирішена багатьма і дуже різними способами.

8 думки про "Задача: підрахунок цифр

  1. я вирішив ось так

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

    1. тому що, можливо, тестувальна система набирає багато цифр. тому що, можливо, тестувальна система набирає багато цифр 10 тому що, можливо, тестувальна система набирає багато цифр 16 тому що, можливо, тестувальна система набирає багато цифр.

  3. #include
    using namespace std;
    int main() {
    тому що, можливо, тестувальна система набирає багато цифр, c;
    тому що, можливо, тестувальна система набирає багато цифр;
    cin>>a;
    while(a>0) {
    тому що, можливо, тестувальна система набирає багато цифр;
    a / = 10;
    if(з == 3) k ;
    }
    cout<<k;
    return 0;
    }

  4. тому що, можливо, тестувальна система набирає багато цифр(тому що, можливо, тестувальна система набирає багато цифр);

  5. #include
    #include
    using namespace std;
    int main()
    {
    тому що, можливо, тестувальна система набирає багато цифр;
    getline(cin, файл);
    int sum = 0;
    for (ІНТ г = 0; від < тому що, можливо, тестувальна система набирає багато цифр(); з ++)
    {
    if (файл[від] == '3')
    {
    підсумувати ++;
    }
    }
    cout << sum;
    return 0;
    }

  6. Рішення з перевірками на помилки:
    #include
    #include

    using namespace std;

    int main()
    {
    рядок aboba = “”;
    char bebra = 0;
    int even = 0;

    cout << "Input nubmer: ";
    getline(cin, вони бояться);
    Sinkclear();

    for (int i = 0; i < абоба.розмір(); i )
    {
    if (!(isdigit(вони бояться[i])))
    {
    cout << "Error: Ви не ввели номер, або в номері були інші символи." << endl;
    return 1;
    }
    }

    cout <> bebra;

    if (!(isdigit(bebra)))
    {
    cout << "Error: Ви не ввели номер, або в номері були інші символи." << endl;
    return 1;
    }

    for (int i = 0; i < абоба.розмір(); i )
    {
    if (вони бояться[i] == бебра)
    {
    навіть++;
    }
    }

    cout << "Numbers found: " << навіть << endl;

    return 0;
    }

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *