Buon compleanno a me!


21

Buon compleanno a me!

Scrivi un programma che stampa Happy birthday to me!il giorno del suo compleanno.

  1. La data di nascita del programma è la creazione, l'ultima modifica o il tempo di compilazione del programma (a scelta) e non devono essere codificati.
  2. La data utilizzata come data di nascita non deve essere influenzata in alcun modo dall'invocazione o esecuzione del programma. Non puoi modificare il tuo compleanno.
  3. Per ulteriore credito (conteggio dei byte di -15%), stampa per Happy birthday to you!il tuo compleanno (hard coded), se non coincide con quello del programma. Oppure usa il compleanno di alcune celebrità e ottieni il -14%.
  4. Deve stampare solo questo e non stampare nulla in nessun altro giorno.
  5. Conta byte, in UTF-8.
  6. Usa il calendario gregoriano.

Buona fortuna e buon compleanno (ai programmi per neonati).

PS
Dopo il commento di Izkata, se stampi Happy birthday to Melper il compleanno di Mel Kaye , ricevi uno sconto del 20%. Ma devi fornire una fonte credibile che sia questa data.


1
@TeunPronk, Non puoi fare entrambe le cose. Utilizza il tuo compleanno o quello di una celebrità (o nessuno) e rinuncia al credito extra).
Ugoren,

4
@TeunPronk: Solo Jon Skeet può: P
MSalters il

11
L'ho visto nella barra laterale Domande frequenti e ho letto "Happy Birthday to Mel " ...
Izkata,

1
@PeterTaylor: Huh? Assegnare vari tipi di bonus per le funzionalità extra è abbastanza comune per le domande sul code-golf , e non ho mai visto nessuno affermare che avrebbe squalificato una domanda dall'uso di quel tag, purché il criterio di punteggio principale sia la lunghezza del codice.
Ilmari Karonen,

1
@Izkata, aggiornata la domanda in onore di Mel.
ugoren,

Risposte:


10

PHP 77 75 74 65 60

Mille grazie ai superbi suggerimenti di Tim Seguine :

<?date(dm,getlastmod())-date(dm)&&die?>Happy birthday to me!

PHP subdolo: 46 42 41 40

Usando l'idea di Phil H e ancora il suggerimento di Tim Seguine :

<?touch(__FILE__)?>Happy birthday to me!

Non include l'anno nel confronto? in tal caso, funziona solo il 0 ° compleanno.
ugoren,

@ugoren Hai ragione! Grazie per la correzione. 2 byte salvati.
ComFreek,

Se "non preme nulla" nelle regole viene interpretato come output standard, allora potresti vincere 4 byte rimuovendo ''le dmstringhe attorno . Ha generato un avviso, ma credo che venga inviato all'errore standard se la segnalazione errori è attiva.
Tim Seguine,

4
<?date(dm,stat(__FILE__)[9])-date(dm)&&die?>Happy birthday to me!
Tim Seguine,

1
@TimSeguine Grazie per i tuoi suggerimenti! Li ho incorporati nella mia risposta, spero che non ti dispiaccia.
ComFreek

48

Bash (subdolo): 36

touch $0;echo Happy Birthday to me\!

Secondo le regole: "tempo di creazione, modifica o compilazione del programma". Scelgo il tempo di modifica e un'auto-modifica perpetua. [HT @ace per 1 carattere]

Perl (anche subdolo): 29

print "Happy birthday to me!"

Questo è probabilmente meno subdolo del primo; I programmi Perl vengono sempre compilati prima di essere eseguiti, cosa che non tutti sanno - vedi, c'è una svolta educativa sulla furtività. Quindi ecco la data della compilation che sto usando.

- Modifica per cambio regola -

Questo è stato scritto prima che ci fosse una regola per cambiare il tuo compleanno. Penso che il Perl sia ancora in piedi; tutti i programmi Perl vengono compilati prima di essere eseguiti. Lascio qui la risposta per motivi educativi!


6
Ok, imbroglione, prendi il mio +1 per l'intelligenza.
Victor Stafusa,

1
Puoi sfuggire al !con \!e rimuovere le virgolette per salvare 1 carattere
user12205

1
Bel trucco, ma le regole lo vietano esplicitamente (ora).
ugoren,

1
@ugoren Ancora non vieta la soluzione perl, che viene compilato prima che il programma si avvia .
Cruncher,

3
@ Cruncher, temo che tu abbia ragione. Consulterò il mio avvocato e ti invierò il conto.
Ugoren,

13

bash - 65

[ `date +%d%m -r $0` = `date +%d%m` ]&&echo Happy birthday to me!

Grazie a ugoren , ace e nyuszika7h per l'aiuto.


Penso che puoi sfuggire al !con \!così non hai bisogno delle virgolette e risparmia 1 carattere.
user12205

In realtà avevo le virgolette poiché pensavo che l'eco le avrebbe richieste per gli spazi. Li ho tolti e non sono sfuggito al punto esclamativo e ha funzionato ancora. Grazie per il consiglio!
shiona,

2
Devi solo scappare !nelle shell interattive, non negli script.
nyuszika7h,

È possibile salvare due caratteri utilizzando [e ]anziché [[e ]].
nyuszika7h,

1
Funziona quando l'anno non coincide con la data di creazione?
ugoren,

6

C # 198.05 (233-15%)

using s=System;class P{static void Main(){string t=s.DateTime.Now.ToString("Mdd"),b="1202";if(s.IO.File.GetCreationTime(typeof(P).Assembly.Location).ToString("Mdd")==t|b==t)s.Console.Write("Happy birthday to "+(b==t?"you!":"me!"));}}

formattato:

using s = System;
class P
{
    static void Main()
    {
        string t = s.DateTime.Now.ToString("Mdd"), b = "1202";
        if (s.IO.File.GetCreationTime(typeof(P).Assembly.Location).ToString("Mdd") == t | b == t)
            s.Console.Write("Happy birthday to " + (b == t ? "you!" : "me!"));
    }
}

191 (Nessun bonus)

using s=System;class P{static void Main(){if(s.IO.File.GetCreationTime(typeof(P).Assembly.Location).ToString("Mdd")==s.DateTime.Now.ToString("Mdd"))s.Console.Write("Happy birthday to me!");}}

181,05 (213-15%)

Con alcune istruzioni aggiuntive (è necessario compilare questo b.exeed eseguirlo dalla directory in cui si trova l'eseguibile) Posso arrivare a questo:

using s=System;class P{static void Main(){string t=s.DateTime.Now.ToString("Mdd"),b="1202";if(s.IO.File.GetCreationTime("b.exe").ToString("Mdd")==t|b==t)s.Console.Write("Happy birthday to "+(b==t?"you!":"me!"));}}

171 (nessun bonus)

Stesse istruzioni di cui sopra, questa volta stampa solo un messaggio per il proprio compleanno (quindi nessun bonus del -15%).

using s=System;class P{static void Main(){if(s.IO.File.GetCreationTime("b.exe").ToString("Mdd")==s.DateTime.Now.ToString("Mdd"))s.Console.Write("Happy birthday to me!");}}

È possibile salvare pochi byte in quelli bonus aggiungendo ,b="1202"==tdopo aver ottenuto la stringa della data e utilizzandola invece.
ahruss,

1
Grazie! Anche se "pochi byte" risulta essere uno ... o mi sto perdendo qualcosa? Modifica Ah, capisco; hai detto ,b="1202"==tma la ==tparte non è possibile in quanto restituisce un valore bool e l'altra var è una stringa. Non è possibile (ovvero AFAIK) utilizzare due diversi tipi in una dichiarazione "var".
RobIII,

Ah ok. È da un po 'che non uso C #. Colpa mia.
ahruss,

Puoi abbreviare la versione più semplice confrontando le date, non le stringhe. Questo uomo usa qualcosa di simile CreationTime.Date == DateTime.Today.
svick,

Funzionerebbe solo per oggi / quest'anno / compleanno 0. Come funzionerebbe per altri anni?
RobIII,

5

Java - 275-15% = 233.75 con bonus / 237 senza bonus

Con bonus:

import java.util.*;class L{public static void main(String[]y){int s=f(new Date());String j="Happy birthday to ";System.out.print(s==f(new Date(new java.io.File("L.class").lastModified()))?j+"me!":s==183?j+"you!":"");}static int f(Date d){return d.getMonth()*40+d.getDate();}}

Senza il bonus:

import java.util.*;class L{public static void main(String[]y){if(f(new Date())==f(new Date(new java.io.File("L.class").lastModified())))System.out.print("Happy birthday to me!");}static int f(Date d){return d.getMonth()*40+d.getDate();}}

Sono nato il 23 aprile.


1
Buon compleanno a , non per ;-) Ti ho appena salvato un altro byte :-)
RobIII,

@RobIII Grazie, risolto.
Victor Stafusa,

Inoltre, la nuova riga ( \n) non è richiesta AFAIK che consente di risparmiare altri 4 byte ;-)
RobIII

@RobIII Grazie ancora.
Victor Stafusa,

Sì ... dovrei smettere di sparare al mio piede: P
Prego

3

Sono abbastanza orgoglioso di questo piccolo trucco per salvare qualche byte sul messaggio. Spero che sia incluso in altre risposte. Sono stato il primo a pensarci!

Pitone

105 caratteri, nessun credito extra. Salvare il file come "tanti auguri a me" ed eseguirlo. Viene eseguito solo in GMT e "compleanno" è definito come la data della tua nascita, non è un anniversario (spesso si chiama anche "compleanno").

import sys,os,time
if (int(os.stat(*sys.argv).st_atime/86400)==int(time.time()/86400)):print sys.argv[0]

Affinché funzioni, salvalo come "tanti auguri a me" ed eseguilo python "happy birthday to me"

Nota: ovviamente, tutto tranne un piccolo bootstrap potrebbe trovarsi nel nome del file, facendo ridurre qualsiasi codice arbitrariamente grande al bootstrap. Normalmente considererei questo "imbroglio". Tuttavia, "buon compleanno a me" non è un nome di file irragionevole - descrive ciò che fa il programma, molto meglio di alcuni programmi (ad esempio "python"), quindi in questo caso lo permetterò :)


Penso che basarsi sul nome del file sia barare (anche se non l'ho proibito esplicitamente). Se è permesso, perché non scrivere eval(sys.argv[0])?
Ugoren,

E non mi sono preoccupato di definire un compleanno, ma è un giorno che arriva una volta all'anno quando una persona celebra l'anniversario della sua nascita , non il giorno esatto in cui sei nato.
ugoren,

ugoren: L'ho menzionato nella mia nota in fondo (che precede il tuo commento). However, "happy birthday to me" is not an unreasonable filename - it describes what the program does, much better than some programs (e.g. "python"), so in this case I'm going to allow it
AMADANON Inc.,

2

Matlab: 66

t=dir('f.m');if strncmp(t.date,date,5),'Happy birthday to me!',end

Il nome del file deve essere 'fm'


1
Per il tuo compleanno dovrebbe dire "Tanti auguri a te !" :-)
RobIII,

@RobIII: Oops, hai ragione, non ho letto abbastanza attentamente. Rimuoverà la seconda versione. Grazie!
H.Muster,

Presumo strncmp(x, y, 5)confronta date come 28-12-2013i primi 15 caratteri (essendo 28-12ad esempio il 28 dicembre). Funziona anche quando le impostazioni locali dell'utente sono yyyy/mm/ddad esempio? Matlab è dd-mm-yyyysempre predefinito ? (Solo curioso). Modifica Nevermind: trovato! . Sembra di si. Non importava comunque per mm/dd/yyyyo dd-mm-yyyydato che entrambi gli operandi sinistro e destro userebbero comunque lo stesso formato ed entrambi i 5 caratteri più a sinistra corrisponderebbero comunque; fintanto che l'anno non è mai in testa.
RobIII,

Perché hai bisogno della variabile t? Non dir('f.m').datefunziona?
ugoren,

@ugoren: tè necessario per dirrestituire gli attributi del file (altrimenti sarebbe sufficiente restituire tutti i file nella directory corrispondente 'f.m'). Inoltre, tè necessario per accedere al datecampo.
H.Muster,

2

GNU COBOL con -free, 204

PROGRAM-ID.B.DATA DIVISION.WORKING-STORAGE SECTION.
1 A PIC XXXX/XX.
1 B PIC X(5).
1 C PIC X(21).
PROCEDURE DIVISION.ACCEPT A FROM DATE
ACCEPT C
MOVE WHEN-COMPILED TO B
IF A(3:5) = B OR "12/09" DISPLAY C.

Ho infranto le regole sulla celebrità, quindi nessun bonus lì ...

Il testo prodotto è un input dell'utente (richiesto quando eseguito). Se ciò non va bene, allora la definizione della linea Cdeve essere cancellata, così come deve ACCEPT C, e DISPLAY Cdeve diventare DISPLAY "HAPPY BIRTHDAY TO ME!" , per altri sette caratteri.

WHEN-COMPILEDè un registro speciale contenente la data / ora di compilazione disponibile per il programma (sempre utile, puoi sapere di avere la versione corretta). Viene troncato MOVEperché non è necessario il resto. DATEè la data corrente - questa è yymmdd.

La /nella definizione di A è una modifica del simbolo di inserimento, dato che la fase di compilazione data contiene barre. Un personaggio in più, ma facilita il confronto.

Celebrità = Grace Hopper


2

Lotto - 37 byte

Rubare il metodo usato da una delle risposte di Bash.

@echo.>>%0&echo Happy birthday to me!

Altro metodo - 145 byte

@for /f "tokens=2,3 delims=/ " %%a in ("%date%")do @for /f "tokens=1,2 delims=/" %%c in ("%~t0")do @if %%a%%b==%%c%%d @echo Happy Birthday to me!

1

Rubino, 69 caratteri / byte

puts'Happy birthday to me!'if(Time.new-File.atime($0))%31536000<86400

31536000è il numero di secondi in un anno ed 86400è il numero di secondi in un giorno.


4
Sfortunatamente, funziona correttamente solo per un massimo di sette anni circa, fino a quando non ti imbatti nel primo anno bisestile dopo l'atime.
Amadan,

Dice anche "buon compleanno" la mattina dopo il tuo compleanno e non dice buon compleanno la mattina del tuo compleanno prima della nascita.
AMADANON Inc.,

1

JavaScript

Node.js, 156 byte

b=new Date(require("fs").statSync(__filename).mtime);d=new Date();b.getDate()==d.getDate()&&b.getMonth()==d.getMonth()&&console.log("Happy birthday to me!")

Utilizza il tempo di modifica del file.


battendoti di 56 byte finora = P
stroncium

Ottengo un errore di runtime quando eseguo il tuo, ma l'approccio della partita è sicuramente molto più intelligente. Correggi l'errore e hai il mio voto. ;)
Chris W.

Puoi citare l'errore e il tuo sistema operativo? Immagino che non sia solo multipiattaforma.
Stroncium,

1

Powershell - 105 byte

if('{0:M}'-f(gi $MyInvocation.MyCommand.Definition).creationtime-eq(date -f M)){'Happy birthday to me!'}

Ungolfed:

if('{0:M}' -f (gi $MyInvocation.MyCommand.Definition).creationtime -eq (date -f M)){
  'Happy birthday to me!'
}

Il bonus non ne vale la pena, posso ottenere solo 117,5.


1

Powershell - 127

if ((gci $MyInvocation.MyCommand.Path).lastwritetime.ToString("MMdd") -eq (get-date).ToString("MMdd")){"happy birthday to me!"}

Per il bonus del 15% - 151 byte, meno 15% = 128,4

$r=@{"0308"="you";(gci $MyInvocation.MyCommand.Path).lastwritetime.ToString("MMdd")="me"}[(get-date).tostring("MMdd")]
if($r){"Happy birthday to $r!"}

1
Non sono un esperto di PowerShell, ma funzionerà solo nell'anno in corso? Cosa succede quando il "programma" compie 1 °, 2 °, 3 ° ecc. Compleanno?
RobIII,

Puoi rimuovere il writecomando - Con solo "happy birthday to me!"lo stamperà.
salato,

Hai ragione. Dovrei saperlo.
Chris J,

@Robill - oops. Questo è ciò che viene dallo scrivere qualcosa quando sono distratto da qualcos'altro e usare Codegolf come procrastinazione. Risolto (non che abbia la possibilità di vincere, mente).
Chris J,

1

Rubino - 80 103 87 byte

m=File.mtime $0
t=Time.now
puts"Happy birthday to me!"if t.month==m.month&&t.day==m.day

Rubino - 123 115 135 121 - 15% = 104.55 97.75 114.75 102.85 punti

t=Time.now
{me:File.mtime($0),you:Time.at(36e5)}.map{|n,d|puts"Happy birthday to #{n}!"if t.month==d.month&&t.day==d.day}

Potrebbe essere un po 'più lungo o più corto a seconda di dove cade il tuo compleanno nell'anno e il modo più breve per rappresentarlo. Per il mio, questo è 36e5(secondi dall'epoca; dipende dal fuso orario).


Mel Gibson conta? Ecco un 138 byte - bonus del 35% = programma a 89,7 punti che celebra se stesso, io e Mel!

t=Time.now
{me:File.mtime($0),you:Time.at(36e5),Mel:Time.at(2e5)}.map{|n,d|puts"Happy birthday to #{n}!"if t.month==d.month&&t.day==d.day}

1
Il tuo codice fallisce negli anni bisestili, per le date successive a febbraio.
ugoren,

@ugoren hai ragione. Risolto il problema, ma ho perso molti punti :(
Tim S.

Ma ora ho recuperato la maggior parte di quelli! =)
Tim S.

0

PureBasic

Senza bonus - 142

If Bool(FormatDate("%dd%mm",Date())=FormatDate("%dd%mm",GetFileDate(ProgramFilename(),0)))
MessageRequester("","Happy birthday To me!")
EndIf

Con Bonus - 218-15% = 185.3

Dim s$(2)
s$(1)="me"
s$(2)="you"
m$="%dd%mm"
d$=FormatDate(m$,Date())
i=Bool(d$=FormatDate(m$,GetFileDate(ProgramFilename(),0)))|(Bool(d$="2301")<<1)
If i=0:End:EndIf
MessageRequester("","Happy birthday To "+s$(i)+"!")

0

TI-BASIC, 68 byte

If Ans=0:getDate→G:0:G=G:If getDate=G:Disp "HAPPY BIRTHDAY TO ME!"

Ricordate, questi gettoni sono un byte: If , Ans, →, Disp. getDateè di due byte. Tutti gli altri simboli di un carattere sono un byte.


1
Sei sicuro che sia UTF-8?
Fozzedout,

3
OP afferma esplicitamente che è necessario utilizzare UTF-8. Sono 66 caratteri e 68 byte.
nyuszika7h,

2
Se si desidera richiedere 46 byte, scriverlo in 46 byte. Come è ora, sono 68 byte.
Ugoren,

Secondo le dimensioni dei token in un ambiente TI-Basic standard è di 55 byte, ma come testo normale sì i suoi 68. Inoltre tecnicamente non deve esserci un "alla fine in modo da poter salvare un byte.
Lemon Drop

0

J 79

 echo((6!:0'')(('',:'Happy birthday to me!'){~])@:-:&(1 2&{)&:>])1{,1!:0{:4!:3''

Versione bonus 120 - 15% = 102

Ricevo credito extra anche per la stampa sia in occasione del compleanno di entrambi?

echo((2 6$(6!:0 '') , 0 2 7)(' ','Happy birthday to ',"2 1]3 5$'you! me!  both!'){~#.@:(-:&(1 2&{)"1)&:>])1{,1!:0{:4!:3''

Spiegazione (da destra a sinistra):

last =: {:4!:3''     NB. Take the last script run (i.e. the file itself)
time =: 1{,1!:0 last NB. the modification time is the second element in that file's listing

Il verbo centrale del treno

unbox_both =: &:>      NB. unboxes left and right argument
match  =: -:&(1 2&{)"1 NB. for each date given, left and right, compare them
to_int =: #.           NB. convert boolean to int
from   =: {~           NB. from the left array, take element right.

NB. H contains messages an empty row, appended to all combinations of messages. 
H =: (' ','Happy birthday to ',"2 1]3 5$'you! me!  both!')

V =: (H from to_int)@:match unbox_both NB. after unboxing and comparing, 
                                       NB. select the according message

Il dente sinistro per il treno centrale:

dates=: (2 6$(6!:0 '') , 0 2 7) NB. the current date, and the relevant fields of my birthday.

NB. Combining the bricks:
echo (dates V ]) time           NB. output the monads result on time.

0

Java - 196

Ciò differisce dall'altro invio Java usando Strings, eliminando 41 caratteri nel processo. Utilizza String.format ("% tj") per formattare un java.util.Date o una stringa come un giorno dell'anno, quindi confronta queste due stringhe.

class Z{public static void main(String[]y){if("".format("%tj",new java.util.Date()).equals("".format("%tj",new java.io.File("Z.class").lastModified())))System.out.print("Happy birthday to me!");}}

formattato:

class Z
{
    public static void main(String[] y)
    {
        if ("".format("%tj", new java.util.Date()).equals("".format("%tj", new java.io.File("Z.class").lastModified())))
            System.out.print("Happy birthday to me!");
    }
}

1
Il giorno dell'anno non funziona bene con gli anni bisestili.
ugoren,

@ugoren sono d'accordo. Tuttavia, poiché il concorso è attualmente in corso e siamo al 20 febbraio. i dati di compilazione dovrebbero andare bene per alcuni giorni e non causare problemi negli anni successivi. Durante la compilazione dopo il 28 febbraio ci sarà davvero un (futuro) problema.
RobIII,

Se stavo compilando dopo il 28 febbraio, avrei potuto cambiare il formato String in "% tm% td" al costo di sei punti
timxyz,

0

C # 191 nessun bonus

using s=System;class P{static void Main(){if(s.IO.File.GetCreationTime(typeof(P).Assembly.Location).ToString("Mdd")==s.DateTime.Now.ToString("Mdd"))s.Console.Write("Happy birthday to me!");}}

formattato:

using s = System;
class P
{
    static void Main()
    {
        if (s.IO.File.GetCreationTime(typeof(P).Assembly.Location).ToString("Mdd") == s.DateTime.Now.ToString("Mdd"))
            s.Console.Write("Happy birthday to me!");
    }
}

Si utilizza x solo due volte; var x="MMdd";+ ToString ( x) + ToString ( x) = 15 mentre ToString ( "MMdd"); + ToString ( "MMdd"); costa solo 12.
RobIII,

Inoltre, non è necessaria una nuova riga, quindi è WriteLine()possibile accorciarla Write(). Con sopra e questo cambiamento in atto, hai la stessa identica soluzione di me ;-)
RobIII,

1
Dovresti aggiornare anche il punteggio, che ora è 193. E puoi farlo scendere a 191 rasando due M * * suggerimento *: P
RobIII

0

JavaScript (node.js) - 100 byte

(require('fs').fstatSync(4).mtime+1).match(Date().substr(4,6))&&console.log('Happy birthday to me!')

0

vb.net ~ 161c

Questo stamperà il messaggio di celebrazione per tutti coloro di cui è il compleanno.

Module M
Sub Main
For Each b In{({"1705","Alan"}),({"2012","You"}),({FileDateTime(Process.GetCurrentProcess.MainModule.FileName).ToString("ddMM"),"Me"})}
If b(0)=Now.ToString("ddMM") Then Console.WriteLine("Happy Birthday To {0}!",b(1))
Next
End Sub
End Module

Alan => Alan Kaye

Punteggio: 253c (-33c vb.net min) = 220-15% (il mio bonus di compleanno) = 187c - 14% (compleanno della celebrità) = 160.82 ~ 161c o 220c - 29% = 156.2 ~ 157c


Puoi ottenere un bonus per il tuo compleanno O una celebrità. Non entrambi.
ugoren,

Il punteggio di @ugoren non afferma che è un esclusivo o, quindi sto usando il significato logico di o.
Adam Speight,

0

Powershell, 82 byte

vedi anche le risposte di Chris J e SpellingD

"Happy birthday to me!"|?{(gv My* -v|% M*|% p*h|gci|% l*w*e|% D*r)-eq(date|% D*r)}

dove

gv My* -v|% M*|% p*h|gci|% l*w*e|% D*r

è la combinazione di scorciatoie e alias per l'espressione:

Get-Valiable MyInvocation -value|% MyCommand|% Path|Get-ChildItem|% LastWritetime|% DayOfYear

quell'equivalente una forma canonica:

(Get-ChildItem $MyInvocation.MyCommand.Path).LastWritetime.DayOfYear

Powershell, 119 byte - 14% = 102,34 punti

filter e{$_-eq(date|% D*r)}$('me'|?{gv My* -v|% M*|% p*h|gci|% l*w*e|% D*r|e}
'Prof'|?{3|e})|%{"Happy birthday to $_!"}

Al 3 gennaio , viene visualizzato lo script Happy birthday to Prof!. Se questo script viene salvato il 3 gennaio, verranno visualizzati due messaggi di saluto.


-1

C # - 63 byte

class P
{
    static void Main()
    {
          Console.Write("Happy birthday to me!"));
    }
}

Scelgo il tempo di compilazione . Poiché il codice C # viene compilato in MSIL che in fase di runtime viene compilato nel codice eseguibile dal compilatore JIT , questo programma soddisfa le condizioni.

MODIFICA: risposta probabilmente non valida come indicato nei commenti.


1
Vecchio trucco, non più valido. La Regola 2 dice "non deve essere influenzato in alcun modo dall'invocazione o esecuzione del programma".
ugoren,

aggiornato di conseguenza. Grazie @ugoren
rahulroy9202,

@ugoren Anche il codice PERL di Phil H usa questo stesso trucco. Controlla la risposta più votata.
rahulroy9202,

2
È anche una risposta non valida. Ma - è stato il primo a usare questo trucco, e al momento lo ha fatto le regole lo hanno permesso.
Ugoren,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.