Hallo Welt! mit begrenzter Zeichenwiederholung


79

Schreiben Sie in einer Sprache Ihrer Wahl ein Programm, das genau die Zeichen ausgibt, Hello world!denen eine neue Zeile folgt. Der Code:

  • sollte kein Zeichen mehr als zweimal verwenden (alphanumerisch, Symbol, Leerzeichen ... alles)
  • sollte keine externen Ressourcen verwenden
  • sollte keine Benutzereingaben verwenden
  • sollte nichts anderes ausgeben

Ein Beispiel für ein gültiges Python-Programm:

print("He%so world!"%(2*'l'))

Ein Beispiel für ein ungültiges Python-Programm (das Zeichen 'r' wird dreimal verwendet):

print("Hel"+chr(108)+'o world!')

Gewinner ist, wer nach 14 Tagen die meisten Stimmen hat.

EDIT: Ein Gewinner wurde ausgewählt! Vielen Dank für Ihre Arbeit an dieser Frage!


25
Was ist mit dem wiederholten Buchstaben o im "gültigen" Python-Beispiel? Dort auch diese: - "'()
Adam Speight

15
@AdamSpeight was meinst du? Der Buchstabe wird laut Spezifikation nur zweimal verwendet.
Josh

5
@AdamSpeight ... das ist buchstäblich das gleiche.
VisioN

4
Ich denke, Sie meinen, ein Charakter sollte nicht mehr als zweimal auftauchen, das heißt, er sollte nicht mehr als einmal wiederholt werden.
Michael Kay

56
Ich denke, Brainfuck kommt nicht in Frage ...
jub0bs

Antworten:


61

Ruby (1.9+)

Da dies ein Beliebtheitswettbewerb ist, sollten wir versuchen, keine der Zeichen aus "Hallo Welt!" Zu verwenden. während andere Zeichen nur maximal zweimal verwendet werden:

puts("S\107VsbG8gV29ybGQhCg".unpack(?m))

Es sind übrigens 40 Zeichen.

Bash

Und dieser nutzt Unicode-Magie.

Anmerkungen:

  • Während die ursprünglichen Zeichen anderswo erscheinen (im Gegensatz zum Rubin-Beispiel), enthält die gedruckte Zeichenfolge nur Nicht-ASCII-Zeichen.
  • Zwei der drei Leerzeichen sind Tabulatoren. Es gibt also keine utf-8-Zeichen, die mehr als zweimal vorkommen
  • Da einige der Oktette binär mehr als zweimal vorkommen, verstößt dies hoffentlich nicht gegen die Regeln. Ich versuche sie zu lösen.

Code:

echo '𝓗𝐞𝑙𝒍𝓸 𝓦𝗈𝖗𝖑𝘥¡'|iconv -t  asCIi//TRANSLIT

Für diejenigen, die keine richtige Schriftart installiert haben, sieht es so aus:

Code als Bild

Hier ist der Hexdump:

00000000  65 63 68 6f 20 27 f0 9d  93 97 f0 9d 90 9e f0 9d  |echo '..........|
00000010  91 99 f0 9d 92 8d f0 9d  93 b8 e2 80 8a f0 9d 93  |................|
00000020  a6 f0 9d 97 88 f0 9d 96  97 f0 9d 96 91 f0 9d 98  |................|
00000030  a5 c2 a1 27 7c 69 63 6f  6e 76 09 2d 74 09 61 73  |...'|iconv.-t.as|
00000040  43 49 69 2f 2f 54 52 41  4e 53 4c 49 54 0a        |CIi//TRANSLIT.|
0000004e

Sie müssen es auf einem Computer ausführen, auf dem der Standardzeichensatz utf-8 ist. Ich habe ein OSX10.8 mit iTerm2 in der folgenden Umgebung ausprobiert:

Bash läuft in iTerm2

PHP 5.4

Dies verwendet zLib: (leider werden die Zeichen eund verwendet o)

<?=gzuncompress('x▒▒H▒▒▒W(▒/▒IQ▒!qh');

Hexdump:

00000000  3c 3f 3d 67 7a 75 6e 63  6f 6d 70 72 65 73 73 28  |<?=gzuncompress(|
00000010  27 78 9c f3 48 cd c9 c9  57 28 cf 2f ca 49 51 e4  |'x..H...W(./.IQ.|
00000020  02 00 21 71 04 68 27 29  3b                       |..!q.h');|
00000029

+1

Hier ist der Ruby 2.0-Code, mit dem ich nach Duplikaten gesucht habe:

d=ARGF.read
p [d.split(//),d.unpack('C*')].map{|x|x.inject(Hash.new(0)){|i,s|i[s]+=1;i}.select{|k,v|v>2}}

2
Obwohl ich Unicode-Cleverness immer schätze, scheint Ihr Bash-Versuch die Spezifikation der Frage nicht zu erfüllen. "Schreiben Sie ein Programm, das genau die Zeichen, Hello world!gefolgt von einem Zeilenumbruch ausgibt"
FireFly

14
@FireFly: es befriedigt es. iconv mit der Zielkodierung ascii//translitübersetzt die Unicode-Zeichen in Basis-ASCII-Zeichen. Und natürlich fügt Echo die neue Zeile hinzu, sodass diese der Spezifikation entspricht (wenn wir die Ähnlichkeit der Oktette nicht berücksichtigen)
SztupY

5
Auf meinem System bekomme ich Hello World?stattHello World!
Marinus

1
@ SztupY oh, du hast recht, mein schlechtes. Sehr schlau, ich mag es!
FireFly

1
Wie viele Bonuspunkte würden Sie erhalten, wenn Ihr Dublettenprüfer auch der sich wiederholenden Spezifikation entspricht? :-)
corsiKa

55

Sie müssen ausdrucksstärkere Sprachen verwenden.

Chinesisch,  6 4   3 Zeichen

喂世!

Ausführen von Google Übersetzer auf diesem produziert Hello world!

(Danke an @sreservoir und @Quincunx für das Update)


33
+1 für Regelverbiegen ... "In einer Sprache Ihrer Wahl ..."
WallyWest

4
Liebe es. Aber wie genau ist das ein Programm?
Pierre Arlaud

3
Tatsächlich können Sie es als Programm in einer Google Übersetzer-Sprache ansehen - für Chinesisch als Untersprache :)
Tomas

2
+1. Gute Idee. 世界 = Shì jiè = Welt. 你好 = nǐ hǐo = Hallo. "Welt, hallo!" übersetzt in "Hallo Welt!". Es kann etwas mehr Golf gespielt werden:你好世!
Justin

2
kann weiter auf 喂世!Kosten von golfen werden ... nun ja , es wird wirklich nichts mehr ausgegeben.
muhmuhten

45

HQ9 +, 1 Zeichen

H

Halte es einfach :)


7
HQ9 + gibt allerdings ein Komma aus;)
Josh

8
Ich würde deine Antwort trotzdem draußen lassen ... es ist schließlich ein Beliebtheitswettbewerb, Regeln gelten für den Wind!
Josh

26
@Josh Dies ist eines der seltenen Ereignisse, bei denen ich den Downvote-Button für Kommentare vermisse. Wenn wir Regeln wegwerfen, gibt es nichts mehr, was den Wettbewerb rechtfertigen könnte.
Howard

5
@ Howard Ich fühle mich schmutzig. Ich habe deinen und Joshs Kommentar positiv bewertet
Cruncher

22
Alle print Hello WorldFragen sind eigentlich who can submit a HQ9+ answer fasterFragen.
Totymedli

44

C 192 Zeichen

#
#
/*$$@``*/ATION_[]={9.};main(BBCDDEEFFGGHJJKKLLMMPPQQRRSSUUVVWWXXYYZZabbdefgghhjjkkmpqqsstuuvvwxyyzz) {printf("He%clo \
world!%c\
",2^7&!8.&~1|~-1?4|5?0x6C:48:6<3>2>=3<++ATION_[0],'@'^79-5);}

Da dies kein Golfspiel ist, habe ich mich entschlossen, Spaß zu haben und zu versuchen, jeden Charakter genau zweimal zu verwenden (während ich so wenig wie möglich in einen Kommentar einfügte, weil das langweilig ist). Mir ist klar, dass ich es nicht besonders gut gemacht habe, da mein Code auch eine Menge langweiligen "toten" Codes enthält (nicht im wörtlichen Sinne, sondern im Sinne von Platzhalterzeichen, die nur verwendet werden, um die Anforderung zu erfüllen). Wie auch immer, das war überraschend schwer (aber lustig) mit der Beschränkung auf zwei Zeichen, so dass ich mir leider nichts Interessanteres einfallen lassen konnte. Es gab mir eine Idee für ein neues Problem ...

(Aktualisiert per @ ugorens Kommentar.)


3
Kreativ beeindruckend. Ich mag das.
Josh

Der Schrägstrich "\", der die Zeilen drei und vier endet, macht es zu einer Fortsetzung der Zeile, nicht zu einer neuen Zeile. Und die vierte Zeile wird von einem EOF beendet, wodurch sie legal ist.
Josh

1
Ich denke, Sie können leicht Kommentare entfernen, .indem Sie sie für Brüche verwenden. Sie können auch ein Array deklarieren und verwenden [].
Ugoren

@ugoren gut anrufen über .; Ich habe nur darüber nachgedacht, es für den Strukturzugriff zu verwenden. <s> In Bezug auf Array-Deklarationen habe ich ,aufgrund des printfAufrufs ;keine Daten mehr und auch keine Daten. Daher bin ich mir nicht sicher, wie ich eine deklarieren könnte. </ s> Duh, ich könnte sie ersetzen ATION_. ..
FireFly

44

Vim-Befehl (18 Tastenanschläge)

iHeEsc3alEscio WorRightd!Enter

Wiederholt keinen Tastendruck mehr als zweimal.

Es verstößt ein bisschen gegen die "Benutzereingabe" -Regel, da es immer noch der Benutzer ist, der diese Sequenz eingeben muss, aber ich nehme an, wenn Sie es vorher als Makro oder als Nicht-Map speichern, würde es zählen, da Sie es nur ausführen, ohne es explizit zu tun Eingabe, um es zu verwirklichen.

Es muss außerdem nocompatiblefestgelegt werden, dass externe Ressourcen möglicherweise verwendet werden. Daher habe ich nachfolgend eine weitere Variation bereitgestellt:


Vim-Befehl (21 Tastenanschläge)

iHeEsc3alEscio WorCtrl+[$ad!Enter

Diese Variante muss nicht nocompatiblefestgelegt werden, obwohl sie Escdreimal verwendet wird, indem sie Ctrl+[an ihrer Stelle verwendet wird.


16
Wenn Sie über die Charaktere reden in Right, Escund Entersind sie nicht wörtlich diese Zeichen. Vim handelt mit Tastenanschlägen, die ich für die Zwecke dieses Wettbewerbs als Zeichen gleichwertig erachte (und die Regel "nicht mehr als zweimal wiederholen"). Ich benutze den iTastenanschlag nur zweimal und den <Right>Tastenanschlag nur einmal. Was E, ich benutze es überhaupt nicht - aber ich verwende <Esc>zweimal und <Enter>einmal.
Joe Z.

6
Jetzt bin ich enttäuscht, dass Emacs kein Mx-Hallo-Welt-Kommando hat ...
RemcoGerlich

4
Selbst wenn doch, das sind drei ls.
Joe Z.

1
Sie sollten beachten, dass Sie müssen :set nocompatible.
Jazzpi

1
Erstaunlich, aber ich finde die Verwendung Rightnicht sehr vim-y.
Gefei

29

Piet-- Keine Charaktere!

Hallo Welt in Piet


7
Ich würde die Codels als "Zeichen" betrachten.
Paŭlo Ebermann

3
@ PaŭloEbermann Was würdest du für einen einzigartigen Codel halten? ZB verschiedene Formen? Farben? Größen? eine Kombination davon?
ApproachingDarknessFish

1
@ValekHalfHeart Die Definition eines eindeutigen Codels ist in den Spezifikationen der Sprache angegeben : Es handelt sich um einen Codelblock, der als einfarbiges Pixel vereinfacht werden kann.
Plannapus

@plannapus In diesem Fall ist diese Herausforderung in Piet technisch nicht möglich. Ich könnte mir aber etwas Kreatives einfallen lassen.
ApproachingDarknessFish

@ValekHalfHeart oh, es war keine Kritik an dieser Antwort: Ich liebe es! Diese Herausforderung war ohnehin kein Codegolf.
Plannapus

26

Perl, 29 Zeichen

Diese Antwort enthält x-bewertete Clogs!

say"07-8*d<#B+>!"^xRATEDkL0GZ

Perl, 23 Zeichen

Kürzere, aber keine Pornoschuhe. :-( Die gleiche Grundidee ...

say'0@@lo World!'^"x%,"

Perl, 20 Zeichen

Langweilig...

say"Hello Wor\x6Cd!"

7
Ähm ... versaut? +1 :)
Josh



18

Scala: 34 29 Zeichen

Ich bin stolz auf mich:

printf("He%c%co world!\n",108,108)

Es war wirklich schwierig, doppelte Anführungszeichen und Klammern zu überwinden. Dann entdeckte ich die alte Java- printfFunktion, mit der Zahlen in Buchstaben umgewandelt werden können, wenn der %cFormatbezeichner angegeben wird.

Aktualisieren

MrWonderful hat eine wundervolle Sache gemacht, indem er darauf hingewiesen hat, dass eine ganze Reihe von Zeichen gespeichert werden können, indem mein zweites "l" manuell in der Zeichenfolge verwendet wird!

printf("Hel%co world!\n",108)

4
@KCaloux, Wäre printf ("Hel% co world \ n", 108) bei 28 nicht noch besser , da Sie bis zu zwei Jahre alt sein dürfen ?
MrWonderful

@ MrWonderful Ich denke, Sie sind absolut richtig! (Außerdem habe ich gerade gemerkt, dass ich vergessen habe, das '!'
Einzuschließen

Soweit ich weiß, ist dies kein gültiger Eintrag, obwohl es ein guter Versuch ist. printfenthält a rwie es tut world. Gleiches gilt für den omehrmals verwendeten Buchstaben . Dies basiert auf meiner Interpretation der folgenden Anweisung aus dem OP "Ein Beispiel für ein ungültiges Python-Programm (das Zeichen 'r' wird dreimal verwendet): print("Hel"+chr(108)+'o world!')"
Javatarz

@JAnderton Ich ließ mein Skript von einem Ruby-Programm analysieren, um sicherzustellen, dass keine Zeichen mehr als zweimal enthalten waren. Lies es nochmals. Es gibt 2 Rs, nicht 3. Eine in "printf" und eine in "world". Der Grund, warum die Python- chr
Version

16

Python 3 [38 Bytes]

exec('import '+chr(95)*2+"h\x65llo__")

Ich würde nicht import __hello__als externe Ressource betrachten.


15

Perl: 34 Zeichen

$_="He12o wor3d!
";s{\d}{l}g;print

Probelauf:

bash-4.1# perl -e '$_="He12o wor3d!
> ";s{\d}{l}g;print'
Hello world!

(Keine große Sache. Wird nur gepostet, um in meinem Leben mindestens einmal s///mit diesen schicken Begrenzern verwendet zu werden.)


15

PHP, 33 Zeichen

Ich finde es einfach toll, wie viel PHP verzeiht und versteht!

<?=Hel.str_rot13("yb jbe").'ld!';

Bevor es gelöscht wurde (oder wenn es noch da ist, bin ich total blind), sah ich einen Kommentar mit der Aufschrift "No brainf * ck?: D". Wie Sie wissen, ist es so gut wie unmöglich, eine Lösung in BrainF * ck zu schreiben. Aber ich habe es geschafft, dies nur für den Lulz zu codieren.

++++++++++[>++++>+++++>++++++>+++++++>++++++++++>+++++++++++>+++++++++<<<<<<<-]
>>>.+++.--.>++.>+.+++++++.<<<<++++++.>>>>>+++++.+.--.>+++++.<.---.+++++.<<<<-.+
+.<------.------.>>>>>+++++.<----------.<<<<--.>>>>++++++++.--------.+++.
<<<<++.+++++++.+++++.-------.>>>>+++++++.--------.<<<<------.++++++.>++++++++.

Wenn Sie keinen BF-Interpreter haben, gibt der obige Code nur den PHP-Interpreter aus: P


Ich wusste nicht einmal, dass ein Code wie dieser gültig ist! Das PHP-Tag ist nicht geschlossen und der String Helist nicht von Anführungszeichen umgeben. Ich habe auch noch nie davon gehört str_rot13.
Aycan Yaşıt

1
@ AycanYaşıt Das abschließende PHP-Tag ist in EOF nicht erforderlich. Wenn Sie einen String ohne Anführungszeichen eingeben, wird davon ausgegangen, dass es sich um eine nicht deklarierte Konstante handelt, die denselben Inhalt wie der Name hat und eine Warnung
ausgibt

1
Sie können die Warnung umgehen (und die erste speichern .), indem Sie die Helvor die setzen <?=.
Paŭlo Ebermann

4
@ PaŭloEbermannHel<?=str_rot13("yb jbe")?>ld!
MirroredFate

2
@ PaŭloEbermann Ich würde sagen, dass das wie Schummeln ist, da es kein reines PHP mehr ist.
Vereos

13

HTML Fiddle - 21 Zeichen

Hel&#108;o World!<br>

Umfasst das die nachfolgende Newline?
Josh

Doh ... habe diese Anforderung verpasst! Ich werde dort ein Bild hinzufügen.
Briguy37

7
@netinept: Es wurde nach einem Zeilenumbruch gefragt, \nalso würde ich sagen, <br>zählt
Chris

1
Aber der Charakter rwiederholt sich in der Lösung. Habe ich die Anforderungen falsch interpretiert?
Javatarz

2
"l" und "o" auch, aber jedes Zeichen kann höchstens zweimal verwendet werden.
Xem

12

Ruby: 27 Zeichen

puts [:Hel,'o wor',"d!"]*?l

Probelauf:

bash-4.1# ruby <<ENDOFSCRIPT
> puts [:Hel,'o wor',"d!"]*?l
> ENDOFSCRIPT
Hello world!

Ruby: 25 Zeichen

(Basierend auf Vaches Kommentar.)

puts 'He'+?l*2+"o world!"

Ruby: 23 Zeichen

(Kopie der Powershell- Antwort von Danko Durbić .)

puts"He#{?l*2}o world!"

puts 'He'+'l'*2+'o world!'ist ein Zeichen kürzer!
dee-see

3
Aber hat 6 "'" s ...
manatwork

haha ich habe mich so auf buchstaben konzentriert, dass ich das nie bemerkt habe. keine Ursache!
Dee-See

1
Entfernen Sie das Leerzeichen nach Puts und machen Sie es 23. -puts"He#{?l*2}o world!"
Zero Fibre

1
@SampritiPanda, penthält Anführungszeichen in der Ausgabe. Ich halte mich lieber strikt an das gewünschte Ausgabeformat. Aber Sie haben Recht, der Platz wird nicht benötigt. Danke.
Manatwork

12

JavaScript, 66 Zeichen

alert('Hel'+window.atob("\x62G8gd29ybGQhCg=="));//rH+in.\x689yQhC;

Inspiriert von FireFly wird jedes von diesem Code verwendete Zeichen genau zweimal verwendet.


Ich denke, Sie dürfen einige Zeichen nur einmal verwenden, und Sie können den Kommentar fallen lassen.
John Dvorak

2
@JanDvorak - na ja, sicher, er hätte es auch so machen können - aber ich denke, diese Lösung verdient eine Aufwertung für die bloße Absicht, jeden Charakter genau zweimal zu verwenden. :-)
Bob Jarvis

6
+1, aber es ist einfach, jedes Zeichen genau zweimal zu verwenden, wenn Sie nur Kauderwelsch als Kommentar hinzufügen.
Camilo Martin

11

C - 43 Zeichen

main(){printf("Hel%co World!%c",'k'+1,10);}

Ausgabe

Hello World!

Zeichenanzahl

' ' Count: 1    '!' Count: 1    '"' Count: 2    '%' Count: 2    ''' Count: 2
'(' Count: 2    ')' Count: 2    '+' Count: 1    ',' Count: 2    '0' Count: 1
'1' Count: 2    ';' Count: 1    'H' Count: 1    'W' Count: 1    'a' Count: 1
'c' Count: 2    'd' Count: 1    'e' Count: 1    'f' Count: 1    'i' Count: 2
'k' Count: 1    'l' Count: 2    'm' Count: 1    'n' Count: 2    'o' Count: 2
'p' Count: 1    'r' Count: 2    't' Count: 1    '{' Count: 1    '}' Count: 1

Brauchst du nicht mainetc
FireFly

@FireFly Ich denke schon! Es hieß, ein Programm zu schreiben.
Kirk Backus

Das ist C, aber nicht C ++. C ++ hat kein implizites int (und Sie können kein anderes ersparen i).
Ben Voigt

@BenVoigt Okie dokie!
Kirk Backus

9

JavaScript [37 Bytes]

alert(atob("SGVsbG8g")+'wor\x6cd!\n')

Zu primitiv, nicht wahr?


5
Wo ist die Newline?
Christopher Creutzig

@ChristopherCreutzig Sorry, habe es vergessen. Jetzt ist es an Ort und Stelle.
VisioN

9

nginx.conf

return  200 "He&#x6clo wo&#x72ld!\n";

In Aktion:

% curl -6 http://localhost/ | lynx -dump -stdin
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    21  100    21    0     0  20958      0 --:--:-- --:--:-- --:--:-- 21000

   Hello world!

%

Diese Lösung enthält 4 Leerzeichen ...
Josh

3
@Josh, eigentlich gibt es 5. Aber könntest du nicht bedenken, dass zwei der ersten vier Registerkarten sind und die letzte ein nicht zerbrechlicher Bereich ist? :-)
cnst

Das ist für mich in Ordnung!
Josh

@Josh, jetzt, da wir HTML verwenden, ist das eigentlich nicht mehr nötig set. Dies hat jetzt nur 3 Leerzeichen, von denen eines ein Tab sein könnte!
17.

Sehr schön gemacht.
Josh

9

Emacs-Befehl (15 Tastenanschläge)

He<Ctrl-3>l<Left>o wor<End>d!<Enter>

Wenn diese vim Antwort legal ist, muss dies auch sein :)

Spaß beiseite, Makro kann es auch werden :)

Abgesehen von mehr Quatsch kann ich wahrscheinlich noch etwas mehr quetschen, aber das scheint vorerst gut genug zu sein (da es besser ist als vim).

PS, bitte ignoriere all meinen Unsinn (ich benutze (selten, aber) auch vim!).


2
Ich denke immer noch, Emacs.
Joe Z.

6

Befunge 98

a"!dlrow ol":'e'Hck,@

Hier ist eine Version, in der jedes Zeichen zweimal vorkommt.

bka!e:dw"H@!dlrow  ol":'e'Hbk,a,@

Lässt einen Haufen Müll auf dem Stapel.

Als Bonus hat jeder einzelne Charakter von der IP etwas damit zu tun.


6

Malbolge

(=<`#9]~6ZY32Vw/.R,+Op(L,+k#Gh&}Cdz@aw=;zyKw%ut4Uqp0/mlejihtfrHcbaC2^W\>Z,XW)UTSL53\HGFjW

Leider scheint dies zu drucken, Hello, world.anstatt Hello world!\n:( Versuchen Sie es online! Beeindruckend, aber ungültig.
DLosc

5

Eigentlich betrüge ich nicht gerne: P

Python

print("!dlrow os%eH"[::-1]%('l'*2))

2
Sie sollten angeben, dass es für python2 ist. In python3 erhält man den umgekehrten String als Ausgabe und dann einen TypeError.
Bakuriu

1
Zur Verwendung in Py3K muss das Argument of Print in Klammern angegeben werden. print("!dlrow os%eH"[::-1]%('l'*2))arbeiten in beiden Versionen (Python2 und Py3K).
AMK

4

GolfScript

'He

o world!'n/"l"*

Ersetzt zwei Zeilenumbrüche (zum Glück wird der dritte, der für die Ersetzung benötigt wird, vom eingebauten System bereitgestellt n), wobei beide Arten von Zeichenfolgenliteral verwendet werden, um vierfache Kopien eines Anführungszeichens zu vermeiden. Da les das einzige Zeichen ist, das mehr als zweimal in der Originalzeichenfolge vorkommt, ist es nicht zu schwer.


Sie haben das "!" Vergessen.
Howard

@Howard, habe es verpasst. Hoppla.
Peter Taylor

Der Buchstabe o wird auch wiederholt
Adam Speight

1
@AdamSpeight: Es gibt nur den doppelten Buchstaben o. Die Regeln besagen, dass ein Charakter nicht mehr als zweimal verwendet werden darf .
ProgramFOX

4

Hmm.

In C können wir nach diesen Regeln nur einen #define(wegen iund n) und höchstens zwei Funktionsaufrufe ODER-Definitionen ( (und )) haben.

Ich nehme an, dass es so ziemlich nur einen Weg gibt, es zu tun (obwohl ich mich wahrscheinlich irre):

main(){puts("Hello w\x6fr\154d!");}

Sie müssen die nachgestellte Zeile noch ausgeben. Es ist schwierig, diese Herausforderung in C
Josh

1
@Josh Ich muss nur puts()anstelle von verwenden printf().
Oberon

2
Aber was ist los mit o in world?
VisioN

@VisioN In einem alten Entwurf des gleichen Codes (bevor mir klar wurde, wie schwer es tatsächlich war, ein solches Programm zu schreiben) habe ich ein anderes 'o' an einer anderen Stelle verwendet. Aber das ist kein Code-Golf , also muss es wohl nicht repariert werden.
Oberon

4
Tatsächlich bin ich mir nicht sicher, warum jede Antwort eine Zeichenanzahl anzeigt.
Oberon

4

BASH

printf 'Hel\x6co world!\n'

Cred @manatwork

echo $'Hel\x6c\x6f world!'

Der erste hat 3 "e" und 3 "o".
Manatwork

@manatwork: Gag; Danke;)
Runium

In Bash können Sie überspringen , -eindem Sie die spezielle $'…'Syntax: echo $'Hel\x6c\x6f world!'.
Manatwork

4

C - 46 Zeichen

main(){printf("He%clo wor%cd!\x0d",'l',108);}

Druckt aus:

Hallo Welt!


Wer Golf will, main(){printf("He%clo world!%c",108,10);}sollte funktionieren und sich ein paar Zeichen sparen.
FireFly

@FireFly du hast recht, du würdest mir 3 Zeichen sparen. Ihr Vorschlag funktioniert auch perfekt.
Phillip Kinkade

4

Fuge

Aus dem Esolang-Wiki:

Bildbeschreibung hier eingeben

Und Sie können den Quellcode anhören .


11
Ich würde sagen, das ist ungültig. Ich kann mehr als 4 mittlere cs in der rechten Hand sehen.
Justin

4
Ganz zu schweigen von der Folge von vier aufeinanderfolgenden Gs im 9. Takt.
Joe Z.

Hast du das geschrieben oder nur gerendert? Vorausgesetzt, Sie verknüpfen mit dem MIDI des esolang-Archivs.
FireFly

4
-1 für Plagiate. Dies ist aus dem Esolang-Wiki . Sie zitieren es nicht. Edit: zurückgesetzt, jetzt wird das esolang Wiki zitiert.
Justin

-1 für mehr als 2-maliges Verwenden derselben Note.
Erik der Outgolfer

4

PHP

32 Zeichen

Beachten Sie, dass ich ein Zeichen nicht öfter als zweimal verwende, da l! = L

He<?=strtolower("LLO WOR");?>ld!

Beachten Sie auch, dass trotz des Löschens von Stack Overflow in der Darstellung nach dem ein Zeilenumbruch auftritt !.


1
Sie verwenden drei Leerzeichen, aber ich denke, dies kann behoben werden, indem Sie diejenigen in der Nähe der PHP-Tags entfernen! : P
Vereos

1
Das war schnell, obwohl ich vorher gemerkt habe, dass ich Ihren Kommentar gelesen habe (eigentlich aus einer anderen Antwort)
Francisco Presencia,

Soll die Ausgabe "H" nicht groß geschrieben werden?
David Cary

Völlig wahr, auch das verpasst):
Francisco Presencia

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.