Проверка числа на n-значность числа

301
20 июня 2018, 20:00

Программа запрашивает у пользователя шестизначное число. Вывести на экран, соблюдал ли он правила. Т.е., ввель ли user шестизначное число.

Чтобы проверить, шестизначное ли число, я делил это число на 1000000, так как в данном случае шестизначное число должно давать 0. Проверка работает правильно с числами типа: 1234567, 12, 789625244242 и т.п. (программа оповещает, что число введено не шестизначное)

Работает не правильно с астрономическими числами : 2e10, 2e8 ... (программа выводит, что числа шестизначные). Поэтому мне кажется, что мой алгоритм не правильный.

Подскажите, пожалуйста, как правильно решить эту задачу. Спасибо.

Answer 1
string s;
cin >> s;
if (s[0] != '0' && std::all_of(s.begin(), s.end(),
                [](const char& c) { return isdigit(c); }) && s.size() == 6)
    cout << "ok";

так хотели?

READ ALSO
Ошибка в консоли js - скрипт работает

Ошибка в консоли js - скрипт работает

(index):22 [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experienceFor more help, check https://xhr

178
Возврат суммы значений в массиве [дубликат]

Возврат суммы значений в массиве [дубликат]

На данный вопрос уже ответили:

149
ymaps router или multiRouter

ymaps router или multiRouter

В документации почти все примеры по multiRouterMultiRoute

152