Po tym popularnym pytaniu przedstaw swoje rozwiązanie, które wypisuje liczby od 1 do 1000 (wszystkie, a nie ciąg „1 do 1000” dosłownie lub coś śmiesznego) w C ++ bez użycia średników. W przeciwieństwie do pierwotnego pytania, możesz używać warunkowych i pętli.
Preferowane są rozwiązania niewymagające żadnych flag kompilatora. Podaj wszystkie, których używasz, jeśli sprzeciwiasz się temu. Niezdefiniowane zachowanie jest dozwolone, więc proszę podać używany kompilator i wersję. Preferowane będą sprytne rozwiązania. To nie jest najkrótszy konkurs kodu.
(Mam rozwiązanie, które opublikuję za 24 godziny, jeśli podobne rozwiązanie nie zostanie opublikowane wcześniej.)
Odpowiedzi:
źródło
źródło
printf()
Średnik nie jest potrzebny, jeśli znasz magiczne słowo. I nie trzeba zaciemniać.
Moje rozwiązanie ma dodatkową ciekawość, że nie używa przecinka;)
źródło
Prosty i prawie idiomatyczny:
źródło
źródło
Działa to świetnie na moim komputerze z systemem Linux:
Wiem, wiem ... to nie jest przenośne.
źródło
Bardzo podobny do innych rozwiązań, ale z niewielką zmianą: Zmienna krok jest zadeklarowana pod
if
warunkiem:źródło
main()
niejawniereturn 0;
w C ++.źródło
main
int
zawsze wracaNiemal każdy program o regularnym wyglądzie (nie wymaga specyfikacji kompilatora), na przykład:
można sformułować za pomocą C ++ iostream na wiele różnych sposobów:
źródło
main
int
zawsze wraca .źródło
Próbowałem zainicjować std :: ofstream na zewnątrz, przekazując go jako parametr (tj.
write_code(str, std::ofstream())
), Ale najwyraźniej konstruktor kopiowania jest prywatny i takiego wyrażenia nie można przekazać przez odwołanie.źródło
źródło
Wypróbuj online!
źródło
C ++ (gcc) , 57 bajtów
Dzięki temu liczba operandów wynosi zawsze 1. (Nie kodegolf, ale chcę go zagrać w golfa ...)
Dziękujemy za @ceilingcat za zamianę printf na
__builtin_printf
.Wypróbuj online!
C (gcc) , 43 bajty
Publikują również odpowiedzi C, zakładam?
Wypróbuj online!
źródło
źródło
cstdio
,Rozwiązanie oparte na C ++ 11 wykorzystujące funkcję lambda:
Kompiluje i działa:
Premia 1: Dostosowanie zakresu do wydrukowania jest tak proste, jak edycja dwóch parametrów połączenia.
Premia 2: Wyjście zakończone nową linią.
źródło
C ++ z szablonami
Uwagi:
źródło
Twoja odpowiedź oparta na rekurencji.
źródło