|
0 / 0 / 0
Регистрация: 26.08.2023
Сообщений: 7
|
|
Являются ли значения М и N кратными трем26.08.2023, 01:35. Показов 1776. Ответов 31
Метки нет (Все метки)
Здравствуйте. Нужен максимально короткий код на C++ с объяснением каждой строки кода.
Вот задача: Определить, являются ли значения целочисленных переменных М и N кратными трем. Если оба кратны трем, то вычислить их сумму, иначе вычислить их произведение.
0
|
|
| 26.08.2023, 01:35 | |
|
Ответы с готовыми решениями:
31
Определить являются ли значения целочисленных переменных кратными трем
Найти количество элементов массива, являющихся кратными двум и не кратными трем |
|
6136 / 2830 / 1039
Регистрация: 01.06.2021
Сообщений: 10,317
|
|
| 26.08.2023, 21:24 | |
|
SmallEvil, видимо, повар1 применил правило "если два числа делятся на 3, то их сумма тоже делится на 3" в обратном порядке, что неверно. Это логическая ошибка. Когда идёт дождь - асфальт мокрый. Но если асфальт мокрый - не факт, что идёт дождь)
0
|
|
|
Модератор
|
||||||||||||||||
| 26.08.2023, 21:40 | ||||||||||||||||
|
Передаём числа как аргументы командной строки:
12
9 Этот вариант самый короткий, который я смог придумать - три строки всего.
0
|
||||||||||||||||
|
6136 / 2830 / 1039
Регистрация: 01.06.2021
Сообщений: 10,317
|
||
| 26.08.2023, 21:43 | ||
0
|
||
|
Модератор
|
||||||
| 26.08.2023, 21:46 | ||||||
|
Royal_X, два стейтмента на одной строке - признак плохого кода. У меня получается один compound statement на одной строке. Такой код, конечно, изящным не назовёшь, но ТС хотел как можно короче. В принципе, если пренебречь правилом один стейтмент - одна строка, то можно ещё короче:
0
|
||||||
|
Модератор
|
||||||
| 26.08.2023, 21:52 | ||||||
Сообщение было отмечено Royal_X как решение
Решение
Если у нас драка за каждый символ, то можно даже так:
1
|
||||||
|
0 / 0 / 0
Регистрация: 26.08.2023
Сообщений: 7
|
|
| 27.08.2023, 20:24 [ТС] | |
|
sourcerer, у вас самый маленький код а пояснения? Если можете можно ещё меньше?
Добавлено через 22 секунды Ребята можете пояснить для новичка что такое плохой код?
0
|
|
|
0 / 0 / 0
Регистрация: 26.08.2023
Сообщений: 7
|
||||||
| 27.08.2023, 22:51 [ТС] | ||||||
|
sourcerer, у вас чёто и код не работает.
Добавлено через 25 секунд Вот этот:
0
|
||||||
|
Модератор
|
||||||||||||||||||||||
| 27.08.2023, 23:11 | ||||||||||||||||||||||
|
Toyota Camry, всё превосходно работает: https://onlinegdb.com/A60jpB8vL
Заменяйте в коде значения переменных m и n на те, которые нужны Вам, будет разный результат. А так - всё время будет складываться 6 и 3, потому что и 6 и 3 кратны трём, а значит складываем их - получаем 9.Добавлено через 5 минут Toyota Camry, по сути код из сообщения #25 представляет из себя вот такой код, просто записанный в одну строчку:
iostream. Собственно, include - английское слово, означающее "включить". Заголовочный файл iostream - это один из множества файлов стандартной библиотеки языка С++. Директива препроцессора include позволяет нам "включить" в наш файл библиотечный файл iostream. Этот процесс очень похож на обычную пару операций копировать/вставить. Представьте, что вместо этой одной строки в Вашем файле оказываются сотни строк библиотечного кода, написанного умными дядями задолго до Вас, и оттестированного миллионами пользователей. Нам этот заголовочный файл нужен для того, чтобы в нашем коде стали доступны определения библиотечных объектов std::cout и std::cin.Библиотечный объект cout (произносится как "си-аут") - это сокращение от "character output" (по другой версии - от "console output"), то есть, "символьный вывод" или "консольный вывод". Этот объект определён где-то в недрах библиотечного файла iostream. Библиотечный объект cout знает, как выводить на консоль переменные фундаментальных типов (fundamental types) или как их ещё называют, встроенных типов (built-in types). Таким образом, Вам не приходится заботится о том, чтобы самостоятельно реализовывать эту функциональность - она уже доступна в виде готового библиотечного решения. Вы просто используете объект cout, а он выводит на консоль всё, что Вы в него закидываете.Библиотечный объект cin (произносится как "си-ин") - это сокращение от "character input" (по другой версии - от "console input"), то есть "символьный ввод" или "консольный ввод". Этот объект позволяет осуществлять пользовательский ввод с устройства ввода (в нашем случае - с клавиатуры) и сохранять его в переменную.Функция main - это точка входа в программу. Именно эту функцию вызывает операционная система, когда вы кликаете на иконку с Вашей программой или вызываете Вашу программу из командной строки. Слово main - с английского "главная". Функция main как и другие функции в языке С++ имеет чётко определённый синтаксис: сперва мы пишем тип возвращаемого значения (int - от английского "integer" - целое число). Функция main в самом конце своего выполнения вернёт вызывающей стороне (операционной системе) значение целого типа. Обычно это достигается выполнением инструкции return (return statement), и выглядит это так:
Около имени каждой функции (в случае, если мы говорим об определении функции) можно увидеть пару круглых скобок - это так называемый call operator. Внутри круглых скобок располагается список параметров (parameter list). В нашем случае список параметров пуст, то есть, это значит, что мы не передаём внутрь функции main никаких параметров, однако, Вы могли заметить, что в одном из предыдущих примеров я передавал в функцию main пару параметров. Обе этих формы (без параметров и с двумя параметрами) установлены стандартом языка С++. Пара фигурных скобок представляет из себя тело функции (function body). Внутри тела функции располагаются инструкции (statements). Каждая законченная инструкция в языке программирования С++ заканчивается точкой с запятой (за исключением так называемых compound statements, но о них мы сейчас говорить не будем). Таким образом, в нашем примере выше три инструкции:
std и затем два двоеточия. std (или как на конференциях по С++ говорят "студ") - это имя стандартного пространства имён (namespace std). Все классы, функции, константы, объекты стандартной библиотеки помещены в пространство имён std. Это сделано для того, чтобы избежать конфликтов имён. Поскольку хороших имён ограниченное количество, может возникнуть ситуация, когда Вы и, скажем, разработчик сторонней библиотеки, использовали одно и то же имя. Не будь неймспейсов, компилятор не смог бы разобраться, какая именно сущность имеется ввиду - Ваша или библиотечная. Два двоеточия - это оператор разрешения контекста (scope resolution operator).Рядом с объектом cout Вы могли заметить два знака меньше << - это так называемый оператор вставки в поток (insertion operator) или, как его называет в своей книге Стенли Липпман - оператор вывода (output operator). Этот оператор позволяет закинуть в объект cout результат вычисления выражения (m % 3 || n % 3 ? m * n : m + n)В этом выражении используется условный оператор ?: или, как его ещё называют, тернарный оператор. Его синтаксис прост:
В качестве условия у нас выражение m % 3 || n % 3Здесь мы используем оператор взятия остатка от целочисленного деления (значок процента). Если то, что лежит в переменной m (в нашем случае мы положили туда шестёрку, помните?) поделить на 3, то остаток будет ноль. То же верно и для n (мы сложили в неё значение 3). Получается, в обеих частях этого выражения у нас нули. А ноль в С++ в случае логических вычислений - это false. Выражение m % 3 || n % 3 - это и есть такое логическое выражение. Для его вычисления применяется оператор логического ИЛИ (logical OR operator) - это вот те самые две вертикальные палочки (в английской литературе их называют ещё pipe). Оператор || работает так: если хотя бы одна из частей (левая или правая) выражения x || y истинна (true), то всё выражение истинно, в противном случае, всё выражение ложно (false). А мы уже выяснили, что наше выражение m % 3 || n % 3 в случае m равной 6 и n равной 3 и в правой и в левой части ложно. Следовательно, вычисляться будет та ветка, которая после двоеточия, то есть m + n.Запись с тернарным оператором короче, но может немного сбивать с толку начинающего. По сути, чтобы повысить читаемость кода, мы могли бы записать всё, что у нас в теле функции main вот таким образом:
0
|
||||||||||||||||||||||
|
Модератор
|
|
| 28.08.2023, 09:18 | |
|
0
|
|
| 28.08.2023, 09:18 | |
|
Помогаю со студенческими работами здесь
32
Переписать в новый массив все элементы с порядковыми номерами, кратными трем Подсчитать количество цифровых символов в строке с кодами ASCII кратными трем.
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|