Code golf

Hardware, software, mobiteli, programiranje, internet...

Moderator: Bobi

Post Reply
michal
Posts: 205
Joined: 07/04/2011 19:10
Location: Čeh sam, oprostite ako mi gramatika ne valja.

Code golf

Post by michal » 07/02/2012 21:22

Sad se (opet) sjetih programerskog golfa, odnosno ove stranice: http://golf.shinh.org - Fazon je u tome napisati zadani program sa što manje bajtova izvornog koda.

Jeste li ikad probali? Na kojem jeziku? Koji su vaši omiljeni zadaci i na koja rješenja ste najviše ponosni?
Ja nisam nikakav stručnjak, riješio sam samo dvadesetak zadataka, skoro isključivo u C-u (probao sam par u Perlu, ali taj jezik baš dobro ne znam, iako mi se puno sviđa), niti mi rezultati bili sjajni (Hello, world! na 31 bajtova), ali je bilo pravo zabavno i nešto sam naučio.
Volio bih da navedete svoje tajne, savjete itd. Ja ću pokazati svoje primjerke čim budem našao jedan stari backup disk gdje su mi ostali.
Last edited by michal on 28/03/2012 15:57, edited 1 time in total.


michal
Posts: 205
Joined: 07/04/2011 19:10
Location: Čeh sam, oprostite ako mi gramatika ne valja.

Re: Code golf

Post by michal » 09/02/2012 00:02

Evo par onih koji su mi se posebno svidjeli:

Zadatak 2 - echo:

Code: Select all

main(b){while(write(1,&b,read(0,&b,1)));}
Zadatak 3 - 99 bottles of beer:

Code: Select all

#define A a,b,c
main(i){char*a=" bottle",*b=" of beer",*c=" on the wall",*d=
"Take one down and pass it around, ";for(i=99;i>2;i--)printf(
"%d%ss%s%s, %d%ss%s.\n%s%d%ss%s%s.\n\n",i,A,i,a,b,d,i-1,A);printf(
"2%ss%s%s, 2%ss%s.\n%s1%s%s%s.\n\n1%s%s%s, 1%s%s.\nGo to the store and buy some"
" more, 99%ss%s%s.\n",A,a,b,d,A,A,a,b,A);}
Zadatak 4 - example.com:

Code: Select all

#include <netdb.h>
main(e){char a[99];char b[999];struct hostent*c;struct sockaddr_in d={2,
20480};e=socket(2,SOCK_STREAM,0);gets(a);char*A=strchr(&a[0],'w');A[strlen(A)-1]
=0;c=gethostbyname(A);memcpy(&d.sin_addr,c->h_addr_list[0],c->h_length);send(e,
"GET /\n",6,connect(e,(struct sockaddr*)&d,16));recv(e,b,999,0);printf(
"%s",b);}
Zadatak 11 - e:

Code: Select all

main(i){int m=70,j,c,t,d[100],C[284];wmemset(C,1,71);printf("2");for(;i<100;
printf("%d",d[i++])){c=0;for(j=m;j>1;j--){t=C[j]*10+c;c=t/j;C[j]=t-c*j;}d[i]=c;}
puts("4");}

Post Reply