Следуя этому популярному вопросу, представьте свое решение, которое печатает числа от 1 до 1000 (все они, а не дословно строку «от 1 до 1000» или что-то смешное) в C ++ без использования каких-либо точек с запятой. В отличие от исходного вопроса, вы можете использовать условные выражения и циклы.
Решения, не требующие каких-либо флагов компилятора, являются предпочтительными. Пожалуйста, укажите все, что вы используете, если вы идете против этого. Неопределенное поведение допускается, поэтому, пожалуйста, укажите компилятор и версию, которую вы используете. Предпочтение будет отдано умным решениям. Это не конкурс кратчайших кодов.
(У меня есть решение, которое я опубликую через 24 часа, если аналогичное решение не было опубликовано ранее.)
Ответы:
источник
источник
printf()
Точка с запятой не нужна, если вы знаете волшебное слово. И не надо запутываться.
Мое решение имеет дополнительную причуду, что он также не использует запятую;)
источник
Просто и почти идиоматично:
источник
источник
Это прекрасно работает на моей машине с Linux:
Я знаю, я знаю, ... это не портативно.
источник
Очень похоже на другие решения, но с небольшим изменением: переменная шага объявляется в
if
условии:источник
main()
имеет неявноеreturn 0;
в C ++.источник
main
возвращаетсяint
всегдаПрактически любая обычная программа может это сделать (без спецификации компилятора), например:
С помощью C ++ iostream можно сформулировать различными способами:
источник
main
возвращаетсяint
всегда.источник
Я попытался инициализировать std :: ofstream, передав его в качестве параметра (т.е.
write_code(str, std::ofstream())
), но, очевидно, конструктор копирования является закрытым, и подобное выражение не может быть передано по ссылке.источник
источник
Попробуйте онлайн!
источник
C ++ (gcc) , 57 байт
Преимущество заключается в том, что число операндов всегда равно 1. (Не кодогольф, но я хочу сыграть в гольф ...)
Спасибо @ceilingcat за замену printf на
__builtin_printf
.Попробуйте онлайн!
C (gcc) , 43 байта
Они также публикуют ответы C, я полагаю?
Попробуйте онлайн!
источник
источник
cstdio
,Решение на основе C ++ 11 с использованием лямбда-функции:
Компилирует и работает:
Бонус 1: настроить диапазон для печати так же просто, как редактировать два параметра вызова.
Бонус 2: вывод завершается новой строкой.
источник
C ++ с шаблонами
Заметки:
источник
Ваш обычный рекурсивный ответ.
источник