Previous Entry Редактировать запись Редактировать метки В избранное Поделиться Отслеживать Next Entry
(без темы)
tongue
[info]tobotras
[info]andjel, 37 байт :-D

main(i){for(;printf("%d\n",i++)<4;);}

Вывести числа от 1 до 100 программой минимального размера исходника.

Орригинальный способ проинитить i в единицу.

А выйти из цикла, значит, НЕ орригинальный?! А я собой гордился :(

И как оно работает? Я вот как раз выход не понял.

Неоригинальный. Использовать длину представления числа в какой-нибудь системе счисления в качестве оценки его величины - совершенно шаблонный прием.

нешаблонный - это вылететь по SIGSEGV-у :)

#include
[Error: Irreparable invalid markup ('<stdio.h>') in entry. Owner must fix manually. Raw contents below.]

#include<stdio.h> забыл

Зачем? И так работает :) Ты еще скажи, что return 0 надо в конце main написать? :)

хм... и правда работает...

[info]ilya666

2006-03-03 18:23 (местное) Удалить Spam Скрыть Заморозить Track This

ilya@debian:~$ gcc test.c
ilya@debian:~$ g++ test.c
test.c: In function `int main()':
test.c:2: error: `printf' undeclared (first use this function)
test.c:2: error: (Each undeclared identifier is reported only once for each
   function it appears in.)


Давненько я на голом C не писал.

Re: хм... и правда работает...

[info]dzz

2006-03-03 18:55 (местное) Удалить Spam Скрыть Заморозить Track This

Аналогично :)

Можно сократить еще на один байт, заменив "\n" на пробел.

На пробел нельзя, по условию задачи :)

Эквивалентное преобразование ;-) :
main(i){while(printf("%d\n",i++)<4);}

Пожалуй, это читается чуть лучше, чем у Бориса. Хотя, конечно, о читабельности тут речь не идёт.. :)


Групповое действие над комментариями:
Картинка пользователя

Вы читаете свой журнал