Написать программу, которая проверяет, является ли введенная с клавиатуры строка шестнадцатеричным числомколичество символов в строке не более 6) на c или c++
std::cout << "The entered string is hexadecimal\n";
}
else {
std::cout << "The entered string is not hexadecimal \n";
}
return 0;
}
kryshtall2276
18.10.2020
Могут: – 31: для числа 111 сумма остатков равна 1+1+1=3, произведение цифр 1*1*1=1 – 813: для числа 339 произведение цифр 3*3*9=81, сумма остатков 1+1+1=3 – 7293: для числа 999 проивзедение цифр 9*9*9=729, сумма остатков 1+1+1=3
Остальные не могут. – 32: если сумма остатков 3, то все цифры нечетные, их произведение не может быть равно 2. Если сумма остатков 2, то одна из цифр четная, произведение не может быть равно 3. – 43: Сумма остатков не превышает 3, значит, 3 – сумма остатков (поэтому все цифры нечетные), тогда произведение не будет четному числу 4. – 52: сумма остатков 2, одна из цифр четная, но тогда произведение не будет равно нечетному числу 5 – 132: аналогично, сумма остатков 2, произведение должно быть четным (а оно 13) – 190: аналогично, сумма остатков 0, тогда все цифры четные, но произведение 19
simonovaliubov5852
18.10.2020
Ищем в таблице истинности строку, дающую F=1. Это нижняя строка. Теперь надо из выражений 1-4 выбрать то, которое при указанном наборе значений x1-x7 даст истинное значение. Проверяем выражения, содержащие операции "И". Каждое такое выражение будет истино, если все его элементы истины. 1) х1 должно быть истинным, а у нас х1 ложно. Выражение отвергаем. 4) Должны быть ложны х1, х3, х6 и х7. В точности, как у нас. Походит. Два оставшихся выражения содержат операции "ИЛИ". Такое выражение будет истинно, если истинен хоть один его элемент. 2) х1 должен быть истинным, у нас он ложен, у нас он истинный, х3 должен быть истинный, у нас он должный, х4 должен быть ложный, у нас он истинный, х5,х6, х7 - все должны быть истинными и у нас х5 истинный. Подходит 3) х1 должен быть ложным, у нас он ложный. Подходит. Теперь проверяем, будут ли отобранные нами выражения 2), 3) и 4) давать ложное значение при наборе параметров из первых двух строчек. 4) х1 истинно в обоих проверяемых наборах параметров, а оно должно быть ложным. В связи с этим выражение вернет значение ложно, что и ожидается. Подходит, выражение все проверки. 2) х1 должно быть ложным, чтобы все выражение было ложным, а во втором наборе таблицы истинности указано истинное значение. Выражение отвергаем. 3) х1 должно быть истинным, чтобы все выражение было ложным, а в первом наборе таблицы истинности указано истинное значение. Выражение отвергаем.
Решение: только последнее (четвертое) выражение удовлетворяет условиям задачи.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Написать программу, которая проверяет, является ли введенная с клавиатуры строка шестнадцатеричным числомколичество символов в строке не более 6) на c или c++
#include <iostream>
#include <string>
#include <regex>
bool is_hexadecimal(const std::string& str) {
return std::regex_match( str, std::regex("^(0x|0X)?[A-Fa-f0-9]+$") );
}
int main() {
std::string str;
std::cout << "Please enter hexadecimal number: ";
std::cin >> str;
if (is_hexadecimal(str)) {
std::cout << "The entered string is hexadecimal\n";
}
else {
std::cout << "The entered string is not hexadecimal \n";
}
return 0;
}