Mengikuti pertanyaan populer ini , sampaikan solusi Anda yang mencetak angka 1 hingga 1000 (semuanya, bukan string "1 hingga 1000" kata demi kata atau sesuatu yang lucu) di C ++ tanpa menggunakan semi-titik dua. Berbeda dengan pertanyaan awal, Anda dapat menggunakan conditional dan loop.
Solusi yang tidak memerlukan flag kompiler lebih disukai. Harap sebutkan yang Anda gunakan jika Anda menentang ini. Perilaku yang tidak terdefinisi diizinkan, jadi harap tentukan kompilator dan versi yang Anda gunakan. Preferensi akan diberikan kepada solusi cerdas. Ini bukan kontes kode terpendek.
(Saya punya solusi, yang akan saya posting dalam 24 jam jika solusi serupa tidak diposting sebelumnya.)
Jawaban:
sumber
sumber
printf()
Titik koma tidak diperlukan jika Anda tahu kata ajaibnya. Dan tidak perlu dikaburkan.
Solusi saya memiliki keangkuhan tambahan yang tidak menggunakan koma;)
sumber
Sederhana dan hampir idiomatis:
sumber
sumber
Ini berfungsi dengan baik di mesin Linux saya:
Saya tahu, saya tahu, ... ini tidak portabel.
sumber
Sangat mirip dengan solusi lain, tetapi dengan variasi kecil: Variabel langkah dinyatakan dalam
if
kondisi:sumber
main()
memiliki implisitreturn 0;
dalam C ++.sumber
main
kembaliint
, selaluHampir semua program yang tampak biasa dapat dilakukan, (tidak diperlukan spesifikasi kompiler), seperti:
dapat diformulasikan dengan C ++ iostream dengan berbagai cara:
sumber
main
kembaliint
, selalu.sumber
Saya mencoba menginisialisasi std :: ofstream keluar dengan mengirimkannya sebagai parameter (yaitu
write_code(str, std::ofstream())
), tetapi ternyata, copy constructor bersifat pribadi, dan ekspresi seperti ini tidak dapat dilewatkan dengan referensi.sumber
sumber
Cobalah online!
sumber
C ++ (gcc) , 57 byte
Ini mengambil keuntungan bahwa jumlah operan selalu 1. (Bukan codegolf, tapi saya ingin golf itu ...)
Terima kasih kepada @ceilingcat untuk mengganti printf dengan
__builtin_printf
.Cobalah online!
C (gcc) , 43 byte
Mereka juga memposting jawaban C, saya kira?
Cobalah online!
sumber
sumber
cstdio
,Solusi berbasis C ++ 11 menggunakan fungsi lambda:
Kompilasi dan karya:
Bonus 1: Menyesuaikan rentang yang akan dicetak semudah mengedit dua parameter panggilan.
Bonus 2: Output diakhiri oleh baris baru.
sumber
C ++ dengan templat
Catatan:
sumber
Jawaban berdasarkan rekursi run-o'-the-mill Anda.
sumber